190 likes | 335 Vues
HL7 Centralized Terminology Services (CTS) . Harold Solbrig Mayo Clinic May 25, 2000. Centralized Terminology Services. What are the issues that a terminology service group might be charged with resolving? What approach should be taken toward arriving at a resolution?.
E N D
HL7 Centralized Terminology Services (CTS) Harold Solbrig Mayo Clinic May 25, 2000
Centralized Terminology Services • What are the issues that a terminology service group might be charged with resolving? • What approach should be taken toward arriving at a resolution?
CTS What are (some of) the issues? • CE Domain definitions may not always be obvious. How do I, ABC Clinical Systems, write software to implement the following?
CTS What are (some of) the issues? (2) CE messages don’t necessarily (and, in fact, probably shouldn’t) carry all of the information about a given code: • Patient Blood Type • Code Value ( • :value “F-D1111”, • :code-system “SMI” -- from a table ) • . What is the patient’s blood type?
CTS What are (some of) the issues? (3) Valid values for some domains may not be fully specified and/or may undergo frequent revision.
CTS What are (some of) the issues? (4) Mapping between local coding system and standard coding system may be non-trivial.
CTS What are (some of) the issues? (5) Template assembly and validation may require inferential capabilities (e.g. Is HGB a numeric lab test? What are the possible value codes for a blood group, etc.)
CTS What are (some of) the issues? • Many more… • Coding schemes (systems of codes) can be: • Dynamic • Compositional • Embody complex structures • Have rich representational structures
Centralized Terminology Services • Emphasis is on Services. Centralized is a bit misleading, as the specification should not presume a particular architecture. • View centralized as implying “functionally opaque” – a body of software that performs specified tasks without the user necessarily understanding how the tasks are performed.
Proposed Approach • Define and describe the set of tasks that the services need to accomplish. • Develop a “technology neutral specification” ala CCOW’s CMA • Develop a set of technology specific specific component mapping specifications • Develop a set of technology specific UI specifications (if necessary)
Technology Neutrality • See section3 of the CMA document • Candidate technologies include: • Inter-component communication: via Microsoft Automation through COM/DCOM; via any CORBA 2.0 compliant object request broker; via SOAP (when/if adopted by W3C) • Programming languages: any language that can be interfaced with Microsoft Automation and/or CORBA (e.g., VisualBasic®, C++, Java, MUMPS). • Operating Systems: Windows 95®; Windows NT®; any platform that can host a Java virtual machine.
What about SOAP? • Simple Object Access Protocol • XML based • http://www.w3.org/TR/SOAP/ • Another candidate in the transform set including: • UML • OMG IDL • MIDL • RMI • EJB
Technologies • UML
Technologies • CORBA module CentralTerminologyServices { typedef string ConceptCode; typedef string Representation; interface LexExplorer { Representation get_preferred_text ( in ConceptCode concept_code ); }; };
Technologies • COM/DCOM interface ICentralTerminologyServices_LexExplorer; typedef [string] char * CentralTerminologyServices_ConceptCode; typedef [string] char * CentralTerminologyServices_Representation; [ object, uuid(20CAE216-2895-1A51-1D7F-5FB687A59E54), pointer_default(unique), helpstring("CentralTerminologyServices::LexExplorer") ] interface ICentralTerminologyServices_LexExplorer : IUnknown { HRESULT get_preferred_text([in] CentralTerminologyServices_ConceptCode concept_code, [out] CentralTerminologyServices_Representation *val); };
Technologies • SOAP <idl> <module name="CentralTerminologyServices"> <typedef name="ConceptCode" repositoryID="IDL:CentralTerminologyServices/ConceptCode:1.0" type="string"/> <typedef name="Representation" repositoryID="IDL:CentralTerminologyServices/Representation:1.0" type="string"/> <interface name="LexExplorer" repositoryID="IDL:CentralTerminologyServices/LexExplorer:1.0"> <operation name="get_preferred_text"> <return type="Representation"/> <parameters> <parameter type="ConceptCode" name="concept_code" dir="in"/> </parameters> </operation> </interface> </module> </idl>
Technologies • CMA-IDL interface LexExplorer { get_preferred_text inputs(string concept_code) outputs(string preferred_text) } Note: manual translation – unsure of availability of CMA-IDL <-> IDL/JAVA/UML/MIDL/ tools
Proposed Next Step • Scope statement • Solicit requirements from HL7 members at large: • Do they need a CTS? • If so, how do they anticipate it being used within their architectures.