Homework: Building a Research Query System (Introduction to Medical Informatics) (http://www.cpmc.columbia.edu/edu/textbook) The existing CPMC HL7 query facility allows researchers to query for retrospective data on a given patient. For example, if the researcher has a list of patients and a list of data types of interest, the HL7 query facilty allows the researcher to retrieve the data on those patients for any given period of time in the past four years. The existing results broadcast system allows researchers to receive prospective data on a set of patients. For example, if the researcher has a list of patients and a list of data types of interest, the results broadcast system will send the appropriate data on those patients as it arrives on the clinical information system. Generally, when a patient enters a study, the HL7 query facility is used to get the existing data, and then the results broadcast system is used to get new data as it appears for that patient. The problem with these two tools is that they are difficult to use. The researchers must do the following things: 1. determine what the desired data elements are called vocabulary = Medical Entities Dictionary 2. make sure the data are really available schema (no electronic version exists today) 3. figure out how the data are stored schema 4. build an appropriate query HL7 or ressub syntax 5. retrieve the result eg, an ASCII file on cucis, email 6. translate the result into a format useful to them eg, translate HL7 to delimited ASCII 7. translate the codes to useful terms eg, translate from medcodes to readable names The goal of this project is to present a user interface and a set of tools available via telnet that can guide the researcher through these steps. The project can be organized into these parts: A. front end - the user interface 1. logical design of screens and menus 2. implementation of the design (probably in C++) B. back end - the data server 3. access to the Medical Entities Dictionary 4. schema - knowledge of the data access modules (DAMs) C. interfaces 5. definitions APIs among components, including HL7 6. file I/O, output reports, implement HL7 translations Each student should take one position on the project (1-6). Students will work largely in pairs within each of the three parts (A-C). Everyone will have to work together to get the thing working. There will be occasional classes devoted to the project and occasional assignments (eg, present your design).