US20060184637A1 - Method and apparatus for electronic delivery of electronic model images - Google Patents

Method and apparatus for electronic delivery of electronic model images Download PDF

Info

Publication number
US20060184637A1
US20060184637A1 US11/330,797 US33079706A US2006184637A1 US 20060184637 A1 US20060184637 A1 US 20060184637A1 US 33079706 A US33079706 A US 33079706A US 2006184637 A1 US2006184637 A1 US 2006184637A1
Authority
US
United States
Prior art keywords
electronic model
model image
images
electronic
physical object
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US11/330,797
Inventor
Bruce Hultgren
Timothy Vadnais
Michael Marshall
Grant Cermak
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
GeoDigm Corp
Original Assignee
GeoDigm Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by GeoDigm Corp filed Critical GeoDigm Corp
Priority to US11/330,797 priority Critical patent/US20060184637A1/en
Publication of US20060184637A1 publication Critical patent/US20060184637A1/en
Priority to US12/608,774 priority patent/US20100169056A1/en
Assigned to GEODIGM CORPORATION reassignment GEODIGM CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: HULTGREN, BRUCE WILLARD, CERMAK, GRANT JAMES, MARSHALL, MICHAEL CRAIG, VADNAIS, TIMOTHY W.
Abandoned legal-status Critical Current

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61CDENTISTRY; APPARATUS OR METHODS FOR ORAL OR DENTAL HYGIENE
    • A61C9/00Impression cups, i.e. impression trays; Impression methods
    • A61C9/004Means or methods for taking digitized impressions
    • A61C9/0046Data acquisition means or methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols

Definitions

  • the invention relates generally to a distributed computing system for the creation and distribution of electronic models of objects and more particularly to a system, method and article of manufacture for delivering and manipulating electronic model images to end users using a distributed computing system.
  • CAD/CAM system typically consist of design and drafting tools that allow technical designers to build systems that were previously designed on paper using draftsmen. Over time, the computing system and their respective tools have allowed increasing interactive manipulation of components during the design process. This advance in design of items that are then manufactured has occurred using these computer aided systems.
  • CAD/CAM systems typically start their processes with a set of pre-defined libraries of components that may be used by the user of the computing system.
  • libraries For example, electronic schematics possess a library of components that are used to specify a circuit and its layout.
  • the present invention relates to a method, apparatus, and article of manufacture for delivering and manipulating electronic model images to end users using a distributed computing system.
  • a system in accordance with the principles of the present invention includes a distributed computing system delivering and manipulating electronic model images to end users.
  • One aspect of the present invention includes a method for providing electronic delivery of electronic model images. The method generates one or more electronic model images, a portion of the electronic model images being generated from scanned electronic data of a physical object, stores the electronic model images within computer readable memory of a server-based computing system, delivers the electronic model images to a remote client computer over a distributed communications network, manipulates the electronic model images upon the remote client computer, and performs analysis and a course of action using the manipulated electronic model images.
  • the electronic model images comprise in part a polygonal mesh representation of the physical object.
  • One such aspect of the present invention is a method and computer data product encoding instructions for providing electronic model image data files to a remote client computer using a server-based computing system over a distributed communications network.
  • the method receives an electronic model image data files by the server-based computing system, stores the electronic model image data files within non-volatile computer readable memory within the server-based computing system, receives a search query from the remote client computer to identify one or more electronic model image data files, receives a file transfer request from the remote client computer requesting one or more electronic model image data files, and transmits one or more electronic model image data files to the remote client computer.
  • the electronic model image data files have a file header info data block containing data used to identify a physical object represented by the electronic model image data file and an electronic model image, a portion of the electronic model image containing a polygonal mesh representation of the physical object generated from scanned electronic data of a physical object.
  • Yet another aspect of the present invention is a server based computing system for providing electronic model image data files to a remote client computer over a distributed communications network.
  • the computing system has a communications connection to the distributed communications network, a communications server module for receiving remotely generated electronic model image data files, receiving search query requests from the remote client computer, and transmitting a requested electronic model image data file to the remote client computer in response to a file transfer request, a relational database module for maintaining a electronic model image description in a relational database corresponding to each received electronic model image data file for use in processing the search queries received from the remote client computer, and a file storage module for storing the electronic model image data files for use in processing file transfer requests received from the remote client computer.
  • Another such aspect of the present invention is a method and computer data product encoding instructions for receiving electronic model image data files by a remote client computer from a server-based computing system over a distributed communications network.
  • the method transmits a search query from the remote client computer to the server-based computing system to identify one or more electronic model image data files stored within the server-based computing system, transmits a file transfer request from the remote client computer to the server-based computing system requesting one or more electronic model image data files, receives one or more electronic model image data files, manipulates the electronic model images upon the remote client computer, and performs analysis and a course of action using the manipulated electronic model images.
  • FIG. 1 illustrates a distributed computing system for the creation and distribution of electronic models of objects according to one embodiment of the present invention.
  • FIG. 2 illustrates an exemplary computing system useful for implementing an embodiment of the present invention.
  • FIG. 3 illustrates an eModel generation system according to an embodiment of the present invention.
  • FIG. 4 illustrates an eModel for an impression of a patient's mouth and teeth according to yet another example embodiment of the present invention.
  • FIG. 5 illustrates an eModel for a shell from a cellular telephone case according to yet another example embodiment of the present invention.
  • FIG. 6 illustrates a block diagram for an eModel generation and distribution system according to an embodiment of the present invention.
  • FIG. 7 illustrates a block diagram for an eModel generation process according to yet another example embodiment of the present invention.
  • FIGS. 8 a - b illustrate an example of an object from which an eModel is generated according to yet another example embodiment of the present invention.
  • FIG. 9 illustrates a representation of the object in FIG. 8 using a polygonal mesh according to an embodiment of the present invention.
  • FIG. 10 illustrates a simplified representation of the object in FIG. 8 using a reduced polygonal mesh according to yet another example embodiment of the present invention.
  • FIG. 11 illustrates a format for an eModel data file according to yet another example embodiment of the present invention.
  • FIG. 12 illustrates an eModel data server system an embodiment of the present invention.
  • FIG. 13 illustrates another eModel data server system according to yet another example embodiment of the present invention.
  • FIG. 14 illustrates an eModel for an impression of a patient's mouth according to yet another example embodiment of the present invention.
  • FIGS. 15 a - b illustrate use of an eModel to determine spatial measurements corresponding to distances in a patient's mouth according to an embodiment of the present invention.
  • FIGS. 16 a - b illustrate manipulating positions of patient's teeth using an eModel according to yet another example embodiment of the present invention.
  • FIGS. 17 a - c illustrate combining an eModel of a patient's teeth with an x-ray according to yet another example embodiment of the present invention.
  • FIG. 18 illustrates processing modules used to implement an eModel data server according to an embodiment of the present invention.
  • FIG. 19 illustrates an operational flow for the processing performed within an eModel data server according to yet another example embodiment of the present invention.
  • FIG. 20 illustrates processing modules used to implement an end user client computer according to yet another example embodiment of the present invention.
  • FIG. 21 illustrates an operational flow for the processing performed within an end user client computer according to yet another example embodiment of the present invention.
  • the present invention relates to a code generation method, apparatus, and article of manufacture for providing a distributed computing system for the creation and distribution of electronic models of objects.
  • FIG. 1 illustrates a distributed computing system for the creation and distribution of electronic models of objects according to one embodiment of the present invention.
  • End users operate a plurality of different computing systems 110 - 113 to perform their respective computing tasks.
  • End users typically use one general purpose computing system for a variety of tasks.
  • the imaging system used by end users 110 - 113 consist of laptop and desktop computing systems.
  • the Internet 101 provides an available communications path between virtually any two computing systems after they first connect to the Internet. While other communications mechanisms exist and may be used, the Internet provides a well-known mechanism to communicate data between two computing systems.
  • an end user 110 communicates over a communications network 101 to a server 121 to retrieve electronic eModels from a database 122 .
  • the end user 122 may be located anywhere a connection to the communications network 101 exists to retrieve the eModels from the database 122 .
  • This database 122 may be located within an eModel data server system 102 that is maintained by third parties that provide maintenance, data back up, and similar data processing overhead functions that are not an overriding concern for an end user.
  • This data back-up for example, may consist of long-term archiving of data to replace maintenance of physical models that have in the past required a great deal of effort and expense to complete.
  • the eModels themselves consist of a data file stored on the server 121 in a database 122 that allows quick and efficient access for users. These eModels are generated in a separate eModel generation system 103 that consists of one or more model scanning units 131 - 134 . These units 131 - 134 are connected together using a local communications network 136 and a communications path 135 to the Internet 101 . As such, eModels, once generated may be transferred to the eModel Data server system 102 for ultimate use by end users 110 - 113 .
  • an exemplary system for implementing the invention includes a general-purpose computing device in the form of a conventional personal computer 200 , including a processor unit 202 , a system memory 204 , and a system bus 206 that couples various system components including the system memory 204 to the processor unit 200 .
  • the system bus 206 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus and a local bus using any of a variety of bus architectures.
  • the system memory includes read only memory (ROM) 208 and random access memory (RAM) 210 .
  • a basic input/output system 212 (BIOS) which contains basic routines that help transfer information between elements within the personal computer 200 , is stored in ROM 208 .
  • the personal computer 200 further includes a hard disk drive 212 for reading from and writing to a hard disk, a magnetic disk drive 214 for reading from or writing to a removable magnetic disk 216 , and an optical disk drive 218 for reading from or writing to a removable optical disk 219 such as a CD ROM, DVD, or other optical media.
  • the hard disk drive 212 , magnetic disk drive 214 , and optical disk drive 218 are connected to the system bus 206 by a hard disk drive interface 220 , a magnetic disk drive interface 222 , and an optical drive interface 224 , respectively.
  • the drives and their associated computer-readable media provide nonvolatile storage of computer readable instructions, data structures, programs, and other data for the personal computer 200 .
  • exemplary environment described herein employs a hard disk, a removable magnetic disk 216 , and a removable optical disk 219
  • other types of computer-readable media capable of storing data can be used in the exemplary system.
  • Examples of these other types of computer-readable mediums that can be used in the exemplary operating environment include magnetic cassettes, flash memory cards, digital video disks, Bernoulli cartridges, random access memories (RAMs), and read only memories (ROMs).
  • a number of program modules may be stored on the hard disk, magnetic disk 216 , optical disk 219 , ROM 208 or RAM 210 , including an operating system 226 , one or more application programs 228 , other program modules 230 , and program data 232 .
  • a user may enter commands and information into the personal computer 200 through input devices such as a keyboard 234 and mouse 236 or other pointing device. Examples of other input devices may include a microphone, joystick, game pad, satellite dish, and scanner. These and other input devices are often connected to the processing unit 202 through a serial port interface 240 that is coupled to the system bus 206 . Nevertheless, these input devices also may be connected by other interfaces, such as a parallel port, game port, or a universal serial bus (USB).
  • a monitor 242 or other type of display device is also connected to the system bus 206 via an interface, such as a video adapter 244 . In addition to the monitor 242 , personal computers typically include other peripheral output devices (not shown), such as speakers and printers
  • the personal computer 200 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 246 .
  • the remote computer 246 may be another personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the personal computer 200 .
  • the network connections include a local area network (LAN) 248 and a wide area network (WAN) 250 .
  • LAN local area network
  • WAN wide area network
  • the personal computer 200 When used in a LAN networking environment, the personal computer 200 is connected to the local network 248 through a network interface or adapter 252 . When used in a WAN networking environment, the personal computer 200 typically includes a modem 254 or other means for establishing communications over the wide area network 250 , such as the Internet.
  • the modem 254 which may be internal or external, is connected to the system bus 206 via the serial port interface 240 .
  • program modules depicted relative to the personal computer 200 may be stored in the remote memory storage device. It will be appreciated that the network connections shown are exemplary, and other means of establishing a communications link between the computers may be used.
  • the embodiments described herein are implemented as logical operations performed by a computer.
  • the logical operations of these various embodiments of the present invention are implemented (1) as a sequence of computer implemented steps or program modules running on a computing system and/or (2) as interconnected machine modules or hardware logic within the computing system.
  • the implementation is a matter of choice dependent on the performance requirements of the computing system implementing the invention. Accordingly, the logical operations making up the embodiments of the invention described herein can be variously referred to as operations, steps, or modules.
  • FIG. 3 illustrates an eModel generation system according to an embodiment of the present invention.
  • the eModel generation system 103 is an object scanning facility having one or more model scanner units 131 - 134 that scan user objects 300 using a laser scanner 310 that mounts the user object 300 on a multi-axis scanning platform 311 .
  • the laser scanner 310 interfaces with one or more programmable processing devices 321 - 322 to process the laser scanner data into usable object image data.
  • These model scanner units 131 - 134 are connected together using a data communications network 136 to permit the image data to be transferred between processing devices.
  • the eModel data is transferred to a data server 102 over a communications network 101 like the Internet.
  • each model scanner unit 132 includes two processing devices 321 - 322 to process the laser scanner data and generate the model image data.
  • the processing utilizes one such computing device 321 to processing the scanner data to generate a polygonal mesh of triangles and utilizes a second computing system 322 to further process the initial polygonal mesh into a reduced set of surfaces that may be ultimately used by an end user.
  • these two computing devices may in fact be constructed using any number of programmable computing devices where the computing capacity of the devices used will determine the amount of time needed to complete a given processing task. As such, other embodiments of the present invention may be used for these computing devices without deviating from the spirit and scope of the present invention as recited within the attached claims.
  • the laser scanner 310 is a line scanner of the type made by Laser Design, Incorporated of Bloomington Minn., Model No. RPS-120.
  • the scanner possess a capability to transfer data to a computing system 321 at a rate of 14,400 data points per second and have a resolution of 12 microns.
  • the scanner 301 possesses a volumetric accuracy of approximately 25 microns.
  • the multi-axis platform 311 rotates the user item 300 within the field of view of the laser scanner 310 in order to collect sufficient data points from all orientations to observe the entire surface of the user object 300 .
  • FIG. 4 illustrates an eModel for an impression of a patient's mouth and teeth according to yet another example embodiment of the present invention.
  • an impression of a patient's mouth and teeth are obtained from a dental care provider.
  • a plaster model of the upper and lower teeth are obtained.
  • These models have been typically used by dental care providers to observe and measure a patient's mouth and teeth when planning how a course of dental care treatment is to progress.
  • the plaster model is scanned in the eModel generation system 102 to generate the upper 402 and lower 401 eModels that correspond to a digital image representation of the plaster model.
  • the plaster model is no longer needed. As such, the storage of the model is no longer required by dental care providers, as has been the case for most of the past practices of dental care providers. Because the eModel is a digital representation of the physical model, a plurality of user controls 411 - 412 are used by the end user to view the user item 300 , in this case the patient's teeth 401 - 402 , from any orientation. Measurements and other manipulations of the eModel are also permitted.
  • FIG. 5 illustrates an eModel for a shell from a cellular telephone case according to yet another example embodiment of the present invention.
  • a shell from a cellular telephone 501 corresponds to the user item 300 that is scanned to generate an eModel.
  • Any user item 300 that is small enough to fit within the scanning space of the scanner 310 and multi-axis platform 311 in the eModel generation system 103 may be used to generate an eModel.
  • the user item is less that a 6-inch volumetric cube.
  • scanning devices that produce scanned image data at a sufficiently small resolution that permits larger items to be scanned may also be used without deviating from the spirit and scope of the present invention as recited within the attached claims.
  • the nature and shape of the user item 300 does not change the operation of the present invention as recited within the attached claims.
  • FIG. 6 illustrates a block diagram for an eModel generation and distribution system according to an embodiment of the present invention.
  • the process starts 601 and an eModel is generated from a scan of an end user item in module 611 . Once the eModel is generated, the model is stored within a data storage medium on a remotely accessible server in module 612 . Next, an end user receives an eModel of interest for use on his or her client computer over a communications network in module 613 .
  • Test module 615 determines if a new eModel has been created as part of the end user's manipulation of an eModel and if the newly created eModel should be saved for later use. If the new eModel exists and is to be saved, module 616 saves the eModel locally on the end user client computer for later use and the processing ends 602 . If test module 615 determines that a new eModel is not to be saved, the processing also ends 602 .
  • FIG. 7 illustrates a block diagram for an eModel generation process according to yet another example embodiment of the present invention.
  • the process for generating an eModel of a user item 300 starts when a scan module 701 utilizes a scanner 310 to generate a point cloud data file 711 .
  • this point cloud data file 711 may comprises between 2 and 3 million data points.
  • the large amount of data points generated from the scan of a single user item 300 has posed a significant limitation upon the use of eModels in the past.
  • the scanning process implemented in the scan module 701 is performed within the first of two programmable processors 321 within a given model scanner unit 132 .
  • the point cloud data file 711 represents a data point for each location on the surface of the user item 300 .
  • the file is processed into a polygonal mesh of triangles in a mesh module 702 .
  • the points from the point cloud data file are organized into triangles of neighboring points that describe the surface of the user item 300 that has been scanned.
  • the creation of a polygonal mesh data file 712 that contains the specification of all of the triangles reduces the amount of data to between 100-300 k triangles.
  • the number of triangles that are used to describe a surface of the user item 300 may be reduced further in a filtering module 703 when a reduced polygonal mesh file 713 is created. This reduction of the number of triangles is accomplished when adjacent triangles are sufficiently co-planer to permit the surface described by two or more triangles to be similarly described using a single triangle.
  • the reduced polygonal mesh data file 713 typically consists of 60 k triangles that permits a manageable amount of data to be used when eModels are processed.
  • the eModel are completed by an eModel transfer module 704 that attaches a file header that describes the user item in sufficient detail that it maybe retrieved at a later date.
  • the eModel is contained within an eModel data file 714 that may be transmitted over the Internet 101 to the eModel data server for storage within its database.
  • FIG. 8 a - b illustrate an example of an object from which a eModel is generated according to yet another example embodiment of the present invention.
  • a simple geometric 3D shape 801 is presented as an example of how a reduced polygonal mesh is generated that may be used as an eModel.
  • This shape 801 has two visible faces: a small triangular side face 812 and a larger rectangular face 811 . Three other faces make up this simple object that are not visible from the perspective shown in FIG. 8 a.
  • FIG. 8 b shows this object 801 having a set of surface data points superimposed upon the object 801 faces.
  • a laser line scanner passes its sensor over a face of the object 801 , a line of points corresponding to the position of the objects' surface are obtained. These points are separated by the spatial resolution of the scanner.
  • the data points, P 0 821 are specified using a 3 coordinate position X 0 , Y 0 , Z 0 .
  • the scanner translates the data points to a common coordinate system such that the collection of all points represents the points in a 3D coordinate system that corresponds to the surface of the item 801 .
  • These data points are contained within the point cloud data file 711 that is generated by the scan module 701 .
  • FIG. 9 illustrates a representation of the object in FIG. 8 using a polygonal mesh according to an embodiment of the present invention.
  • the point cloud data file 711 is reduced to a polygonal mesh of triangles in which the surface of the triangles are used to approximate the surface of the item 801 .
  • a triangle, T 1 900 is located on the larger surface 811 of the item 801 .
  • the triangle T 1 900 is specified using the three corner points P 0 901 , P 1 902 , and P 3 903 .
  • T 1 900 is defined: T 1 : ⁇ P 0 , P 1 , P 2 ⁇ or T 1 : ⁇ [X 0 , Y 0 , Z 0 ], [X 1 , Y 1 , Z 1 ], ⁇ [X 2 , Y 2 , Z 2 ] ⁇ .
  • Each triangle in the polygonal mesh is specified using the three points as shown above. No particular order for the points making up the triangle is necessary.
  • the smaller side 812 of the item 811 in this example is initially shown with six triangles 911 - 916 .
  • the triangles in the polygonal mesh may be created using any number of well known methods for reducing point position data into a polygonal mesh that approximates the surface of the object.
  • FIG. 10 illustrates a simplified representation of the object in FIG. 8 using a reduced polygonal mesh according to yet another example embodiment of the present invention.
  • a reduced polygonal mesh is generated by combining adjacent triangles in the original polygonal mesh when the two or more triangles are sufficiently coplanar that they may be represented using a single triangle.
  • a large number of small triangles may have been originally generated mesh shown in FIG. 9 .
  • the number of triangles needed is reduced significantly 1001 - 1007 .
  • all of the small triangles from the small side 812 of the item 801 have been combined into a single triangle 1011 .
  • the processing associated with this filtering operation controls the amount of triangle combination by setting a threshold relating to the minimum amount of deviation from a single plane for the two or more triangles that is permitted before two or more triangles are required to remain separate.
  • This filtering process may be accomplished using a number of commercially available polygonal mesh processing products without deviating from the present invention as recited within the attached claims.
  • FIG. 11 illustrates a format for an eModel data file according to yet another example embodiment of the present invention.
  • the eModel data file consists of a file header info block 1101 and a triangle specification block 1102 .
  • the triangle specification block consists of the set of triangle definitions 1111 - 1113 that are used to define the reduced polygonal mesh.
  • the file header info block 1101 includes a set of searchable identification information that may be used to identify a particular model from any number of related models.
  • the mouth and teeth eModels for example, will likely contain patient identification information such as name, date of birth, address, social security number that may be used to uniquely identify the patient from which the model was generated.
  • the info block 1011 may also contain dental care provider information such as the dentist name and address as well as the date on which the impression was taken that generated the eModel.
  • any useful identifying information may be used.
  • This data is typically ASCII encoded data that may be easily searched and processed as necessary.
  • this file header info block 1101 may be modified to include any information needed by a particular application without deviating from the spirit and scope of the present invention as recited within the attached claims.
  • FIG. 12 illustrates an eModel data server system an embodiment of the present invention.
  • the eModel data server 102 communicates with the eModel generation system 103 and end users 110 over a communications network 101 .
  • the eModels that are generated are transmitted to the eModel data server 102 for storage in its databases 1204 - 1205 for later user.
  • the eModel data server 102 includes a communications server module 1201 , a database server module 1203 , and an eModel storage server module 1202 to perform its tasks.
  • the communications server module 1201 performs the communications functions needed to receive eModels from the generation system 103 as well as the communication functions needed to interact with end users when they wish to locate and download eModels of interest.
  • the eModels received from the generation system 103 are stored within two databases.
  • a copy of the file header info block 1101 is stored within a first database 1204 and the entire eModel file is stored within a file storage database 1205 .
  • This separation allows the file header info block data to be stored within a relational database to permit rapid searching for eModels of interest.
  • Once the identity of a desired eModel is located in the relational database 1203 the end user may request a copy of the larger eModel file from the file storage database 1205 .
  • This separation of the two database functions allows the data storage and data processing requirements of each operation to be scaled independently of each other as the nature of the end user interaction with the server 103 is determined. If significant amounts of database query operations are occurring in a particular use of the server 103 , the processing capabilities of the relational database may be increased. If the server 103 is predominantly used to transfer large eModel files to users, data transfer capacity of the file storage database may be increased.
  • FIG. 13 illustrates another eModel data server system according to yet another example embodiment of the present invention.
  • the communication server 1201 , the eModel header database server 1203 , and the eModel file storage server 1202 are all connected to a common local area network to perform the data communication operations.
  • a firewall server 1312 connects the local area network to the Internet 101 for communications to end users 110 and the eModel generation system 102 .
  • the eModel file header info block database 1204 is connected to the eModel header database server 1203 to provide the relational database functions needed to located eModels of interest.
  • the eModel database 1205 is connected to the eModel file storage server 1202 to provide the file storage for all of the eModels.
  • a command and control module 1301 receives requests for operations and coordinates the processing of the other modules and servers to complete a processing and data retrieval request.
  • a client interface module 1303 processes the entire communication request received from an end user 110 .
  • the eModel generation interface module 1301 processing all of the communication requests from the eModel generation system 102 to accept and store new eModels within the databases 1204 - 1205 .
  • the communications server 1201 receives the command messages listed in Table 1. These commands allow eModels to be stored into the databases 1204 - 1205 and allow end users 110 to search for and retrieve eModels from the databases.
  • TABLE 1 Server Communication Commands Procedure Parameters Return Description user_get_emodel_list USER_LOGIN_NAME, E_MODEL_ID, get emodel USER_PASSWORD, PATIENT_LAST_NAME, META data BEGIN_DATE, END_DATE PATIENT_FIRST_NAME, between CREATION_DATE BEGIN_DATE and END_DATE lab_get_user_list USER_LAST_NAME, USER_LOGIN_NAME, get a list of all USER_FIRST_NAME, USER_TITLE, data for USER_ADDRESS_CITY, USER_LAST_NAME, specified user USER_ADDRESS_STATE, USER_FIRST_NAME, USER_
  • FIG. 14 illustrates an eModel for an impression of a patient's mouth according to yet another example embodiment of the present invention.
  • the upper portion of the eModel 402 has been electronically moved and placed in its position above the lower portion of the eModel 401 .
  • the plaster models typically used in the dental care industry includes a base that allows easy spatial registration of the two portions of the eModel. This registration allows an end user to manipulate the parts of the eModel to observer and determine how the individual teeth interact as the two parts move together and apart from each other.
  • the end user 110 may manipulate the eModel by moving, rotating and zooming to a perspective of interest.
  • FIGS. 15 a - b illustrate use of an eModel to determine spatial measurements corresponding to distances in a patient's mouth according to an embodiment of the present invention.
  • a zoomed view of a lower portion of the eModel 401 is shown in which individual spatial measurements of a tooth 1501 is determined by a user visually marking a first side of a tooth 1502 using an input device such as a mouse and/or a trackball.
  • the end user marks a second side 1503 of the tooth 1501 and the end user client system determines the distance between the two points as measured on the eModel polygonal mesh surface. This process may be repeated as many times as desired. In the past, the dental plaster model would be measured to obtain these values.
  • the end user system may automatically calculate this information, more accurately without the need to maintain and use the physical models once a eModel has been scanned, generated and saved.
  • FIG. 15 b illustrates a similar set of spatial measurements being obtained for a series of teeth 1511 on the lower portion of the model 401 as well as a series of teeth 1512 on the upper portion of the model 402 .
  • These measurements 1511 - 1512 are typically used by dental care providers to determine a series of calculated values 1513 associated with the parabolic shape of a patient's mouth and teeth.
  • the end user system may determine these values automatically from the spatial data measured by an end user that in the past would have required a significant amount of effort to obtain the measurements 1511 - 1512 and then calculate the values 1513 .
  • FIGS. 16 a - b illustrate manipulating positions of patient's teeth using an eModel according to yet another example embodiment of the present invention. End users may be able to perform desired functions upon eModels that were difficult, or possibly impossible, to be performed upon physical models.
  • FIG. 16 a illustrates an upper portion of an eModel of a patient's teeth and mouth from a physical model obtained before dental treatment is performed.
  • the dental care provider wishes to move the location of a number of teeth to better align them with the parabolic arc that human teeth are typically aligned.
  • the dental care provide, as an end user of the system, selects and manipulates the location of three upper teeth 1601 - 1603 from a current position to a desired position.
  • the end user interactively moves portions of the eModel that represent the desired teeth to a new position.
  • the dental care provide may remove teeth to determine spacing of the remaining teeth as a course of treatment for a patient is created. All of the possible variations on treatment options may be explored using the eModel until a desired course of treatment is determined.
  • FIG. 16 b illustrates a different view for the eModel after the top front teeth 1601 - 1602 have been moved as shown in FIG. 16 a.
  • a new eModel for an item such as the dental models, may be created through the modification of an existing eModel. Once the new model exists, it may be viewed and manipulated in the same manner as any other eModel. Thus the various possible views of the original eModel may be viewed once a new eModel has been created.
  • an end user may toggle between the two models to illustrate a before and after view of the teeth in light of a proposed treatment plan. All of this treatment planning which has occurred with physical models and paper and pencil calculations may now be performed using the end user computing system.
  • FIGS. 17 a - c illustrate combining an eModel of a patient's teeth with an x-ray according to yet another example embodiment of the present invention. Even more significant than the simple manipulation of eModels, new types of eModels that combine more than one form of digital image data to create a composite digital representation of patient data.
  • FIG. 17 a illustrates a combination of a scanned eModel of a patient's teeth 401 - 402 that has been combined with a corresponding x-ray image 1701 for the patient. In this example, a profile of the entire scull is viewed in the x-ray image 1701 .
  • the two digital modules for the teeth 401 - 402 and for the x-ray 1701 , both typically possess common reference points from the tips of various teeth and similar structures.
  • the processing system can register and scale the two models to permit the combination of these two different models into a single module.
  • FIG. 17 b illustrates the movement of a patient's lower jaw and teeth about the lower jaw pivot point 1702 . As this movement occurs, the upper portion of the teeth eModel 402 and the lower portion of the teeth eModel 401 may be observed. As such, additional considerations may be viewed while a treatment plan is determined for a patient.
  • FIG. 17 c further illustrates the possible options as the composite eModel 1710 has been rotated to display more of a frontal view of the teeth eModels 401 - 402 in combination with the x-Ray.
  • One skilled in the art will recognize that numerous variations on the types of x-rays and other digital image data, including but not limited to digital photographs and textual annotation, that may be combined with scanned eModels to obtain an image based eModel-processing system without deviating from the spirit and scope of the present invention as recited within the attached claims.
  • FIG. 18 illustrates processing modules used to implement an eModel data server according to an embodiment of the present invention.
  • the eModel server 103 includes a communications server 1201 that has a client interface module 1301 , an eModel generation interface module 1302 , and a command and control-processing module 1301 .
  • the communications server 1201 includes a data communications interface module 1802 to perform processing functions needed to send and receive data communications to and from other processing modules over the local area network 1831 .
  • the command and control processing module 1301 receives requests for data operations and interacts with either a database I/O processing module 1803 or an eModel file I/O processing module 1804 to complete the processing.
  • the database I/O processing module 1803 is responsible for all database query requests that occur when end users search for eModels of interest.
  • the database I/O processing module 1803 also is responsible for storing new information into the relational database.
  • the eModel file I/O processing module 1804 is responsible for storing eModels into the file storage database and for transferring stored eModels to end users.
  • the client interface module 1301 consists of an end user authentication module 1811 , a database query module 1812 , and a file transfer module 1813 .
  • the end user authentication module 1811 processes all end user attempts to log into the server to search for and access eModels.
  • the database query module 1812 processes all incoming search requests to generate and process relational database queries to locate matching eModels based upon file header info data.
  • the file transfer module 1813 processes all eModel transfer requests to send eModels to end-users.
  • the eModel generation interface module 1302 processes all commands to store new eModels generated in the eModel generation system into the data server.
  • the eModel generation interface module 1302 includes a header extraction module 1821 , a database storage module 1822 , and a file server storage module 1823 to complete its functions.
  • the header extraction module 1821 extracts the file header info data from incoming eModels and formats them for insertion into the relational database.
  • the database storage module 1822 stores the formatted header data into the relational database as needed to permit easy and efficient searches.
  • the file server storage module 1823 performs the operations needed to store the eModels into the file storage server.
  • FIG. 19 illustrates an operational flow for the processing performed within an eModel data server according to yet another example embodiment of the present invention.
  • the process starts 1901 and the data server receives an eModel in module 1911 after it has been generated in some manner.
  • module 1912 extracts a file header info data from the eModel file. This module 1912 formats this information and necessary and stores it into a searchable relational database for use in locating the corresponding eModel at a later date.
  • the server stores the eModel file into a file storage server in module 1913 in order to allow the eModel to be retrieved by end users.
  • the end users locate the eModels by submitting a query to the relational database to perform a search on the file header info data.
  • the server receives the query request in module 1914 which causes the module 1914 to query the relational database and return the query results to the end user.
  • the end user next sends a request for additional queries if necessary to identify any eModels of interest.
  • Test module 1916 determines if the end user is permitted access to the requested eModel. If access is permitted, the eModel is transferred to the end user by module 1917 and the processing ends. If test module 1916 determines that access to the eModel is not permitted, the error message is returned to the end user by module 1919 and the processing also ends.
  • test module 1916 determines that access to the eModel is not permitted, the error message is returned to the end user by module 1919 and the processing also ends.
  • FIG. 20 illustrates processing modules used to implement an end user client computer according to yet another example embodiment of the present invention.
  • the end user client computer includes a set of processing modules to provide a window-based user environment to interact with eModels.
  • the client computer 2001 includes a graphical user interface (GUI) module 2012 , a command processing and control module 2011 , an eModel Item Manipulate module 2010 , an eModel storage module 2015 , an eModel retrieval module 2013 , and a data communications interface module 2014 .
  • the client computer 2001 may also include local mass storage 2016 to maintain eModels locally as well as on the data server 103 .
  • the end user interacts with the client computer 2001 through the GUI interface module 2012 .
  • the end user enters commands using a pointing device such as a mouse or trackball and using keyboard commands.
  • These commands are processed by the command processing and control module 2011 which send processing requests to the other modules to complete the requested command.
  • the eModel retrieval module 2013 obtains a list of the locally available eModels from the eModel storage module 2015 as well as communicates with the remote data server 103 using the data communications interface module 2014 .
  • the end user is presented with a list of available eModels from which an eModel is selected and retrieved.
  • the eModel is retrieved from local storage 2016 if available. If not, the eModel may be transferred from the remote storage. If desired, the retrieved eModel may be stored locally when retrieved from the remote server to eliminate the need to down load the eModel in the future.
  • the eModels may also be stored only upon the remote data server 103 and retrieved when needed.
  • the eModel Item Manipulate module 2010 displays the eModel to the end user.
  • the eModel Item Manipulate module 2010 includes an item display module 2021 , an item set-up module 2022 , and an x-Ray processing module 2023 .
  • the item display module 2021 displays the eModel graphically to the end user as well as performs the image display related manipulation operations such as zoom, pan, scroll, and similar visual operations.
  • the item set-up module 2022 allows end users to obtain measurements of the eModel and modify the eModel to create new eModels that may be saved locally using the eModel retrieval module 2013 .
  • the x-Ray processing module 2023 performs the operations necessary to manipulate x-rays as well as combine them with other eModels to create and store composite eModels.
  • additional manipulation modules may also be used to process commands associated with various composite eModels created using other supported digital image based eModels without deviating from the spirit and scope of the present invention as recited within the attached claims.
  • FIG. 21 illustrates an operational flow for the processing performed within an end user client computer according to yet another example embodiment of the present invention.
  • the end user process starts 2101 and the end user logs into the client computer in module 2110 .
  • This logging in allows the client system to limit access to eModels if needed when the eModels represent confidential data, such as patient data, to only users who are trusted to use the data appropriately.
  • Test module 1212 determines if a desired eModel is available locally. If test module 1212 determines that the desired eModel is not available, the client computer logs into a remote data server in module 2113 to locate the desired eModel. A database query used to locate the desired eModel is sent to the remote server in module 2114 before receiving a list of remotely available eModels. The end user selects the desired eModel and sends a request for the remotely available eModel to be transmitted to the client computer in module 2115 . The client computer receives the eModel from the remote server 103 , stores it locally, and displays it to the user for manipulation in module 2118 .
  • test module 2112 determines the desired eModel is locally available, the eModel is retrieved and displayed to the user in module 2117 before a user manipulates it in module 2118 .
  • the end user interactively manipulates the eModel as needed in module 2118 to perform the analysis and planning functions that the eModel is useful is assisting.
  • Test module 2119 determines if a new eModel has been created that an end user wishes to save locally. If a new eModel is to be saved, module 2120 will save the newly created eModel locally before the processing ends 2102 . If module 2119 determines that a new eModel is not to be saved, the processing ends immediately 2102 .
  • FIG. 2 illustrates an example of a suitable operating environment 121 in which the invention may be implemented.
  • the operating environment is only one example of a suitable operating environment 121 and is not intended to suggest any limitation as to the scope of use or functionality of the invention.
  • Other well known computing systems, environments, and/or configurations that may be suitable for use with the invention include, but are not limited to, personal computers, server computers, held-held or laptop devices, multiprocessor systems, microprocessor-based systems, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
  • program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types.
  • functionality of the program modules may be combined or distributed in desired in various embodiments.
  • a network server 121 typically includes at least some form of computer readable media.
  • Computer readable media can be any available media that can be accessed by the network server 110 .
  • Computer readable media may comprise computer storage media and communication media.
  • Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data.
  • Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, BC-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by the network server 110 .
  • Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media.
  • modulated data signal means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal.
  • communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of any of the above should also be included within the scope of computer readable media.

Abstract

A method, apparatus, and article of manufacture provide a distributed computing system delivering and manipulating electronic model images to end users. One aspect of the present invention includes a method for providing electronic delivery of electronic model images. The method generates one or more electronic model images, a portion of the electronic model images being generated from scanned electronic data of a physical object, stores the electronic model images within computer readable memory of a server-based computing system, delivers the electronic model images to a remote client computer over a distributed communications network, manipulates the electronic model images upon the remote client computer, and performs analysis and a course of action using the manipulated electronic model images. The electronic model images comprise in part a polygonal mesh representation of the physical object.

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • This application is a continuation of U.S. patent application Ser. No. 09/846,037, filed Apr. 29, 2001, which application is hereby incorporated by reference in its entirety.
  • TECHNICAL FIELD
  • The invention relates generally to a distributed computing system for the creation and distribution of electronic models of objects and more particularly to a system, method and article of manufacture for delivering and manipulating electronic model images to end users using a distributed computing system.
  • BACKGROUND
  • Computational resources available for use by various end users of computing systems has increased significantly. This increase in capability of systems has created the ability for many more end users to utilize computer based image systems to replace processes that utilize paper and physical model processes. In the past, computer aided design, drafting, and manufacture (CAD/CAM) tools represented an area of applications in which computer based image systems have migrated from paper and model based processes to electronic systems.
  • These CAD/CAM system typically consist of design and drafting tools that allow technical designers to build systems that were previously designed on paper using draftsmen. Over time, the computing system and their respective tools have allowed increasing interactive manipulation of components during the design process. This advance in design of items that are then manufactured has occurred using these computer aided systems.
  • These CAD/CAM systems, however, typically start their processes with a set of pre-defined libraries of components that may be used by the user of the computing system. For example, electronic schematics possess a library of components that are used to specify a circuit and its layout. The creation of these libraries, as well as the amount of computational resources needed to perform the operations related to these systems, has prevented the wide-spread use of these systems in other areas of technology.
  • With the advances recently made computational systems, these computer based image systems may be used to permit end users to replace paper and physical models with electronic images. Two areas of technology present additional obstacles to the more widespread use of these systems. First, a mechanism to capture image representations of physical objects accurately and with sufficient resolution is needed in a form that is both inexpensive to operate while providing rapid turn-around for users.
  • Second, a mechanism to easily transmit the images to end users from the location where the image representation of physical objects are generated is also needed. Neither of these latter obstacles has been overcome in existing imaging systems.
  • SUMMARY
  • The present invention relates to a method, apparatus, and article of manufacture for delivering and manipulating electronic model images to end users using a distributed computing system.
  • A system in accordance with the principles of the present invention includes a distributed computing system delivering and manipulating electronic model images to end users. One aspect of the present invention includes a method for providing electronic delivery of electronic model images. The method generates one or more electronic model images, a portion of the electronic model images being generated from scanned electronic data of a physical object, stores the electronic model images within computer readable memory of a server-based computing system, delivers the electronic model images to a remote client computer over a distributed communications network, manipulates the electronic model images upon the remote client computer, and performs analysis and a course of action using the manipulated electronic model images. The electronic model images comprise in part a polygonal mesh representation of the physical object.
  • Other embodiments of a system in accordance with the principles of the invention may include alternative or optional additional aspects. One such aspect of the present invention is a method and computer data product encoding instructions for providing electronic model image data files to a remote client computer using a server-based computing system over a distributed communications network. The method receives an electronic model image data files by the server-based computing system, stores the electronic model image data files within non-volatile computer readable memory within the server-based computing system, receives a search query from the remote client computer to identify one or more electronic model image data files, receives a file transfer request from the remote client computer requesting one or more electronic model image data files, and transmits one or more electronic model image data files to the remote client computer. The electronic model image data files have a file header info data block containing data used to identify a physical object represented by the electronic model image data file and an electronic model image, a portion of the electronic model image containing a polygonal mesh representation of the physical object generated from scanned electronic data of a physical object.
  • Yet another aspect of the present invention is a server based computing system for providing electronic model image data files to a remote client computer over a distributed communications network. The computing system has a communications connection to the distributed communications network, a communications server module for receiving remotely generated electronic model image data files, receiving search query requests from the remote client computer, and transmitting a requested electronic model image data file to the remote client computer in response to a file transfer request, a relational database module for maintaining a electronic model image description in a relational database corresponding to each received electronic model image data file for use in processing the search queries received from the remote client computer, and a file storage module for storing the electronic model image data files for use in processing file transfer requests received from the remote client computer.
  • Another such aspect of the present invention is a method and computer data product encoding instructions for receiving electronic model image data files by a remote client computer from a server-based computing system over a distributed communications network. The method transmits a search query from the remote client computer to the server-based computing system to identify one or more electronic model image data files stored within the server-based computing system, transmits a file transfer request from the remote client computer to the server-based computing system requesting one or more electronic model image data files, receives one or more electronic model image data files, manipulates the electronic model images upon the remote client computer, and performs analysis and a course of action using the manipulated electronic model images.
  • These and various other advantages and features of novelty which characterize the invention are pointed out with particularity in the claims annexed hereto and form a part hereof. However, for a better understanding of the invention, its advantages, and the objects obtained by its use, reference should be made to the drawings which form a further part hereof, and to accompanying descriptive matter, in which there are illustrated and described specific examples of an apparatus in accordance with the invention.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 illustrates a distributed computing system for the creation and distribution of electronic models of objects according to one embodiment of the present invention.
  • FIG. 2 illustrates an exemplary computing system useful for implementing an embodiment of the present invention.
  • FIG. 3 illustrates an eModel generation system according to an embodiment of the present invention.
  • FIG. 4 illustrates an eModel for an impression of a patient's mouth and teeth according to yet another example embodiment of the present invention.
  • FIG. 5 illustrates an eModel for a shell from a cellular telephone case according to yet another example embodiment of the present invention.
  • FIG. 6 illustrates a block diagram for an eModel generation and distribution system according to an embodiment of the present invention.
  • FIG. 7 illustrates a block diagram for an eModel generation process according to yet another example embodiment of the present invention.
  • FIGS. 8 a-b illustrate an example of an object from which an eModel is generated according to yet another example embodiment of the present invention.
  • FIG. 9 illustrates a representation of the object in FIG. 8 using a polygonal mesh according to an embodiment of the present invention.
  • FIG. 10 illustrates a simplified representation of the object in FIG. 8 using a reduced polygonal mesh according to yet another example embodiment of the present invention.
  • FIG. 11 illustrates a format for an eModel data file according to yet another example embodiment of the present invention.
  • FIG. 12 illustrates an eModel data server system an embodiment of the present invention.
  • FIG. 13 illustrates another eModel data server system according to yet another example embodiment of the present invention.
  • FIG. 14 illustrates an eModel for an impression of a patient's mouth according to yet another example embodiment of the present invention.
  • FIGS. 15 a-b illustrate use of an eModel to determine spatial measurements corresponding to distances in a patient's mouth according to an embodiment of the present invention.
  • FIGS. 16 a-b illustrate manipulating positions of patient's teeth using an eModel according to yet another example embodiment of the present invention.
  • FIGS. 17 a-c illustrate combining an eModel of a patient's teeth with an x-ray according to yet another example embodiment of the present invention.
  • FIG. 18 illustrates processing modules used to implement an eModel data server according to an embodiment of the present invention.
  • FIG. 19 illustrates an operational flow for the processing performed within an eModel data server according to yet another example embodiment of the present invention.
  • FIG. 20 illustrates processing modules used to implement an end user client computer according to yet another example embodiment of the present invention.
  • FIG. 21 illustrates an operational flow for the processing performed within an end user client computer according to yet another example embodiment of the present invention.
  • DETAILED DESCRIPTION
  • The present invention relates to a code generation method, apparatus, and article of manufacture for providing a distributed computing system for the creation and distribution of electronic models of objects.
  • FIG. 1 illustrates a distributed computing system for the creation and distribution of electronic models of objects according to one embodiment of the present invention. End users operate a plurality of different computing systems 110-113 to perform their respective computing tasks. End users typically use one general purpose computing system for a variety of tasks. In order for use of imaging systems to replace paper and model based systems, the imaging system used by end users 110-113 consist of laptop and desktop computing systems.
  • These computing systems typically possess a mechanism to communicate with other computing systems over a communications network 101. The Internet 101, as a publicly available communications network, provides an available communications path between virtually any two computing systems after they first connect to the Internet. While other communications mechanisms exist and may be used, the Internet provides a well-known mechanism to communicate data between two computing systems.
  • In an image-based eModel system, an end user 110 communicates over a communications network 101 to a server 121 to retrieve electronic eModels from a database 122. The end user 122 may be located anywhere a connection to the communications network 101 exists to retrieve the eModels from the database 122. This database 122 may be located within an eModel data server system 102 that is maintained by third parties that provide maintenance, data back up, and similar data processing overhead functions that are not an overriding concern for an end user. This data back-up, for example, may consist of long-term archiving of data to replace maintenance of physical models that have in the past required a great deal of effort and expense to complete.
  • The eModels themselves consist of a data file stored on the server 121 in a database 122 that allows quick and efficient access for users. These eModels are generated in a separate eModel generation system 103 that consists of one or more model scanning units 131-134. These units 131-134 are connected together using a local communications network 136 and a communications path 135 to the Internet 101. As such, eModels, once generated may be transferred to the eModel Data server system 102 for ultimate use by end users 110-113.
  • With reference to FIG. 2, an exemplary system for implementing the invention includes a general-purpose computing device in the form of a conventional personal computer 200, including a processor unit 202, a system memory 204, and a system bus 206 that couples various system components including the system memory 204 to the processor unit 200. The system bus 206 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus and a local bus using any of a variety of bus architectures. The system memory includes read only memory (ROM) 208 and random access memory (RAM) 210. A basic input/output system 212 (BIOS), which contains basic routines that help transfer information between elements within the personal computer 200, is stored in ROM 208.
  • The personal computer 200 further includes a hard disk drive 212 for reading from and writing to a hard disk, a magnetic disk drive 214 for reading from or writing to a removable magnetic disk 216, and an optical disk drive 218 for reading from or writing to a removable optical disk 219 such as a CD ROM, DVD, or other optical media. The hard disk drive 212, magnetic disk drive 214, and optical disk drive 218 are connected to the system bus 206 by a hard disk drive interface 220, a magnetic disk drive interface 222, and an optical drive interface 224, respectively. The drives and their associated computer-readable media provide nonvolatile storage of computer readable instructions, data structures, programs, and other data for the personal computer 200.
  • Although the exemplary environment described herein employs a hard disk, a removable magnetic disk 216, and a removable optical disk 219, other types of computer-readable media capable of storing data can be used in the exemplary system. Examples of these other types of computer-readable mediums that can be used in the exemplary operating environment include magnetic cassettes, flash memory cards, digital video disks, Bernoulli cartridges, random access memories (RAMs), and read only memories (ROMs).
  • A number of program modules may be stored on the hard disk, magnetic disk 216, optical disk 219, ROM 208 or RAM 210, including an operating system 226, one or more application programs 228, other program modules 230, and program data 232. A user may enter commands and information into the personal computer 200 through input devices such as a keyboard 234 and mouse 236 or other pointing device. Examples of other input devices may include a microphone, joystick, game pad, satellite dish, and scanner. These and other input devices are often connected to the processing unit 202 through a serial port interface 240 that is coupled to the system bus 206. Nevertheless, these input devices also may be connected by other interfaces, such as a parallel port, game port, or a universal serial bus (USB). A monitor 242 or other type of display device is also connected to the system bus 206 via an interface, such as a video adapter 244. In addition to the monitor 242, personal computers typically include other peripheral output devices (not shown), such as speakers and printers.
  • The personal computer 200 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 246. The remote computer 246 may be another personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the personal computer 200. The network connections include a local area network (LAN) 248 and a wide area network (WAN) 250. Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets, and the Internet.
  • When used in a LAN networking environment, the personal computer 200 is connected to the local network 248 through a network interface or adapter 252. When used in a WAN networking environment, the personal computer 200 typically includes a modem 254 or other means for establishing communications over the wide area network 250, such as the Internet. The modem 254, which may be internal or external, is connected to the system bus 206 via the serial port interface 240. In a networked environment, program modules depicted relative to the personal computer 200, or portions thereof, may be stored in the remote memory storage device. It will be appreciated that the network connections shown are exemplary, and other means of establishing a communications link between the computers may be used.
  • Additionally, the embodiments described herein are implemented as logical operations performed by a computer. The logical operations of these various embodiments of the present invention are implemented (1) as a sequence of computer implemented steps or program modules running on a computing system and/or (2) as interconnected machine modules or hardware logic within the computing system. The implementation is a matter of choice dependent on the performance requirements of the computing system implementing the invention. Accordingly, the logical operations making up the embodiments of the invention described herein can be variously referred to as operations, steps, or modules.
  • FIG. 3 illustrates an eModel generation system according to an embodiment of the present invention. The eModel generation system 103 is an object scanning facility having one or more model scanner units 131-134 that scan user objects 300 using a laser scanner 310 that mounts the user object 300 on a multi-axis scanning platform 311. The laser scanner 310 interfaces with one or more programmable processing devices 321-322 to process the laser scanner data into usable object image data. These model scanner units 131-134 are connected together using a data communications network 136 to permit the image data to be transferred between processing devices. Ultimately, the eModel data is transferred to a data server 102 over a communications network 101 like the Internet.
  • In one embodiment, each model scanner unit 132 includes two processing devices 321-322 to process the laser scanner data and generate the model image data. In this embodiment, the processing utilizes one such computing device 321 to processing the scanner data to generate a polygonal mesh of triangles and utilizes a second computing system 322 to further process the initial polygonal mesh into a reduced set of surfaces that may be ultimately used by an end user. One skilled in the art will recognize that these two computing devices may in fact be constructed using any number of programmable computing devices where the computing capacity of the devices used will determine the amount of time needed to complete a given processing task. As such, other embodiments of the present invention may be used for these computing devices without deviating from the spirit and scope of the present invention as recited within the attached claims.
  • In a preferred embodiment, the laser scanner 310 is a line scanner of the type made by Laser Design, Incorporated of Bloomington Minn., Model No. RPS-120. The scanner possess a capability to transfer data to a computing system 321 at a rate of 14,400 data points per second and have a resolution of 12 microns. In order to create adequate eModels for user items, the scanner 301 possesses a volumetric accuracy of approximately 25 microns. The multi-axis platform 311 rotates the user item 300 within the field of view of the laser scanner 310 in order to collect sufficient data points from all orientations to observe the entire surface of the user object 300.
  • FIG. 4 illustrates an eModel for an impression of a patient's mouth and teeth according to yet another example embodiment of the present invention. In this example, an impression of a patient's mouth and teeth are obtained from a dental care provider. From the impression, a plaster model of the upper and lower teeth are obtained. These models have been typically used by dental care providers to observe and measure a patient's mouth and teeth when planning how a course of dental care treatment is to progress. According to the present invention, the plaster model is scanned in the eModel generation system 102 to generate the upper 402 and lower 401 eModels that correspond to a digital image representation of the plaster model.
  • Once the digital eModel is obtained, the plaster model is no longer needed. As such, the storage of the model is no longer required by dental care providers, as has been the case for most of the past practices of dental care providers. Because the eModel is a digital representation of the physical model, a plurality of user controls 411-412 are used by the end user to view the user item 300, in this case the patient's teeth 401-402, from any orientation. Measurements and other manipulations of the eModel are also permitted.
  • FIG. 5 illustrates an eModel for a shell from a cellular telephone case according to yet another example embodiment of the present invention. In this second example, a shell from a cellular telephone 501 corresponds to the user item 300 that is scanned to generate an eModel. Any user item 300 that is small enough to fit within the scanning space of the scanner 310 and multi-axis platform 311 in the eModel generation system 103 may be used to generate an eModel. In the preferred embodiment, the user item is less that a 6-inch volumetric cube. One skilled in the art will recognize that other scanning devices that produce scanned image data at a sufficiently small resolution that permits larger items to be scanned may also be used without deviating from the spirit and scope of the present invention as recited within the attached claims. In addition, the nature and shape of the user item 300, whether it corresponds to a model of a patient's mouth and teeth or corresponds to a component of an item of manufacture, does not change the operation of the present invention as recited within the attached claims.
  • FIG. 6 illustrates a block diagram for an eModel generation and distribution system according to an embodiment of the present invention. The process starts 601 and an eModel is generated from a scan of an end user item in module 611. Once the eModel is generated, the model is stored within a data storage medium on a remotely accessible server in module 612. Next, an end user receives an eModel of interest for use on his or her client computer over a communications network in module 613.
  • Once an end user receives the eModel, the end user may view and manipulate the eModel as needed to complete any planning, analysis and similar operations in module 614. Test module 615 determines if a new eModel has been created as part of the end user's manipulation of an eModel and if the newly created eModel should be saved for later use. If the new eModel exists and is to be saved, module 616 saves the eModel locally on the end user client computer for later use and the processing ends 602. If test module 615 determines that a new eModel is not to be saved, the processing also ends 602.
  • FIG. 7 illustrates a block diagram for an eModel generation process according to yet another example embodiment of the present invention. The process for generating an eModel of a user item 300 starts when a scan module 701 utilizes a scanner 310 to generate a point cloud data file 711. For objects that typically fit within the 6 inch volumetric cube of the scanner, this point cloud data file 711 may comprises between 2 and 3 million data points. The large amount of data points generated from the scan of a single user item 300 has posed a significant limitation upon the use of eModels in the past. In the preferred embodiment, the scanning process implemented in the scan module 701 is performed within the first of two programmable processors 321 within a given model scanner unit 132.
  • The point cloud data file 711 represents a data point for each location on the surface of the user item 300. The file is processed into a polygonal mesh of triangles in a mesh module 702. In this process, the points from the point cloud data file are organized into triangles of neighboring points that describe the surface of the user item 300 that has been scanned. The creation of a polygonal mesh data file 712 that contains the specification of all of the triangles reduces the amount of data to between 100-300 k triangles.
  • The number of triangles that are used to describe a surface of the user item 300 may be reduced further in a filtering module 703 when a reduced polygonal mesh file 713 is created. This reduction of the number of triangles is accomplished when adjacent triangles are sufficiently co-planer to permit the surface described by two or more triangles to be similarly described using a single triangle. The reduced polygonal mesh data file 713 typically consists of 60 k triangles that permits a manageable amount of data to be used when eModels are processed.
  • The eModel are completed by an eModel transfer module 704 that attaches a file header that describes the user item in sufficient detail that it maybe retrieved at a later date. The eModel is contained within an eModel data file 714 that may be transmitted over the Internet 101 to the eModel data server for storage within its database.
  • FIG. 8 a-b illustrate an example of an object from which a eModel is generated according to yet another example embodiment of the present invention. A simple geometric 3D shape 801 is presented as an example of how a reduced polygonal mesh is generated that may be used as an eModel. This shape 801 has two visible faces: a small triangular side face 812 and a larger rectangular face 811. Three other faces make up this simple object that are not visible from the perspective shown in FIG. 8 a.
  • FIG. 8 b shows this object 801 having a set of surface data points superimposed upon the object 801 faces. When a laser line scanner passes its sensor over a face of the object 801, a line of points corresponding to the position of the objects' surface are obtained. These points are separated by the spatial resolution of the scanner. The data points, P0 821 are specified using a 3 coordinate position X0, Y0, Z0. As the object 801 is moved within the scanning area of the multi-axis platform, the scanner translates the data points to a common coordinate system such that the collection of all points represents the points in a 3D coordinate system that corresponds to the surface of the item 801. These data points are contained within the point cloud data file 711 that is generated by the scan module 701.
  • FIG. 9 illustrates a representation of the object in FIG. 8 using a polygonal mesh according to an embodiment of the present invention. As discussed above, the point cloud data file 711 is reduced to a polygonal mesh of triangles in which the surface of the triangles are used to approximate the surface of the item 801. In this example, a triangle, T1 900, is located on the larger surface 811 of the item 801. The triangle T1 900 is specified using the three corner points P0 901, P1 902, and P3 903. As before, each of these three points are specified using a 3D coordinate system such that T1 900 is defined:
    T1:{P0, P1, P2 } or
    T1:{[X0, Y0, Z0], [X1, Y1, Z1], {[X2, Y2, Z2]}.
  • Each triangle in the polygonal mesh is specified using the three points as shown above. No particular order for the points making up the triangle is necessary. The smaller side 812 of the item 811 in this example is initially shown with six triangles 911-916. The triangles in the polygonal mesh may be created using any number of well known methods for reducing point position data into a polygonal mesh that approximates the surface of the object.
  • FIG. 10 illustrates a simplified representation of the object in FIG. 8 using a reduced polygonal mesh according to yet another example embodiment of the present invention. A reduced polygonal mesh is generated by combining adjacent triangles in the original polygonal mesh when the two or more triangles are sufficiently coplanar that they may be represented using a single triangle. In this example, a large number of small triangles may have been originally generated mesh shown in FIG. 9. When a flat surface of the simple object 801 is considered, the number of triangles needed is reduced significantly 1001-1007. In the example, all of the small triangles from the small side 812 of the item 801 have been combined into a single triangle 1011. The processing associated with this filtering operation controls the amount of triangle combination by setting a threshold relating to the minimum amount of deviation from a single plane for the two or more triangles that is permitted before two or more triangles are required to remain separate. This filtering process may be accomplished using a number of commercially available polygonal mesh processing products without deviating from the present invention as recited within the attached claims.
  • FIG. 11 illustrates a format for an eModel data file according to yet another example embodiment of the present invention. The eModel data file consists of a file header info block 1101 and a triangle specification block 1102. The triangle specification block consists of the set of triangle definitions 1111-1113 that are used to define the reduced polygonal mesh. The file header info block 1101 includes a set of searchable identification information that may be used to identify a particular model from any number of related models. The mouth and teeth eModels, for example, will likely contain patient identification information such as name, date of birth, address, social security number that may be used to uniquely identify the patient from which the model was generated. The info block 1011 may also contain dental care provider information such as the dentist name and address as well as the date on which the impression was taken that generated the eModel.
  • For other items, such as the cellular phone shown in FIG. 5, any useful identifying information may be used. This data is typically ASCII encoded data that may be easily searched and processed as necessary. One skilled in the art will recognize how this file header info block 1101 may be modified to include any information needed by a particular application without deviating from the spirit and scope of the present invention as recited within the attached claims.
  • FIG. 12 illustrates an eModel data server system an embodiment of the present invention. The eModel data server 102 communicates with the eModel generation system 103 and end users 110 over a communications network 101. The eModels that are generated are transmitted to the eModel data server 102 for storage in its databases 1204-1205 for later user.
  • The eModel data server 102 includes a communications server module 1201, a database server module 1203, and an eModel storage server module 1202 to perform its tasks. The communications server module 1201 performs the communications functions needed to receive eModels from the generation system 103 as well as the communication functions needed to interact with end users when they wish to locate and download eModels of interest.
  • The eModels received from the generation system 103 are stored within two databases. A copy of the file header info block 1101 is stored within a first database 1204 and the entire eModel file is stored within a file storage database 1205. This separation allows the file header info block data to be stored within a relational database to permit rapid searching for eModels of interest. Once the identity of a desired eModel is located in the relational database 1203, the end user may request a copy of the larger eModel file from the file storage database 1205. This separation of the two database functions allows the data storage and data processing requirements of each operation to be scaled independently of each other as the nature of the end user interaction with the server 103 is determined. If significant amounts of database query operations are occurring in a particular use of the server 103, the processing capabilities of the relational database may be increased. If the server 103 is predominantly used to transfer large eModel files to users, data transfer capacity of the file storage database may be increased.
  • FIG. 13 illustrates another eModel data server system according to yet another example embodiment of the present invention. In this particular embodiment, the communication server 1201, the eModel header database server 1203, and the eModel file storage server 1202 are all connected to a common local area network to perform the data communication operations. A firewall server 1312 connects the local area network to the Internet 101 for communications to end users 110 and the eModel generation system 102.
  • The eModel file header info block database 1204 is connected to the eModel header database server 1203 to provide the relational database functions needed to located eModels of interest. The eModel database 1205 is connected to the eModel file storage server 1202 to provide the file storage for all of the eModels.
  • Within the communications server 1201, a command and control module 1301 receives requests for operations and coordinates the processing of the other modules and servers to complete a processing and data retrieval request. A client interface module 1303 processes the entire communication request received from an end user 110. The eModel generation interface module 1301 processing all of the communication requests from the eModel generation system 102 to accept and store new eModels within the databases 1204-1205.
  • In order to perform its processing functions, the communications server 1201 receives the command messages listed in Table 1. These commands allow eModels to be stored into the databases 1204-1205 and allow end users 110 to search for and retrieve eModels from the databases.
    TABLE 1
    Server Communication Commands
    Procedure Parameters Return Description
    user_get_emodel_list USER_LOGIN_NAME, E_MODEL_ID, get emodel
    USER_PASSWORD, PATIENT_LAST_NAME, META data
    BEGIN_DATE, END_DATE PATIENT_FIRST_NAME, between
    CREATION_DATE BEGIN_DATE
    and
    END_DATE
    lab_get_user_list USER_LAST_NAME, USER_LOGIN_NAME, get a list of all
    USER_FIRST_NAME, USER_TITLE, data for
    USER_ADDRESS_CITY, USER_LAST_NAME, specified user
    USER_ADDRESS_STATE, USER_FIRST_NAME,
    USER_ORGANIZATION_NAME USER_MIDDLE_NAME,
    USER_ADDRESS_CITY,
    USER_ADDRESS_STATE,
    USER_ORGANIZATION_NAME
    add_lab LAB_ORGANIZATION_NAME, none create a lab
    LAB_LAST_NAME, entry in the
    LAB_FIRST_NAME, SQL database
    LAB_MIDDLE_NAME,
    LAB_TITLE, LAB_PHONE,
    LAB_FAX, LAB_E_MAIL,
    LAB_ADDRESS_STREET_1,
    LAB_ADDRESS_STREET_2,
    LAB_ADDRESS_STREET_3,
    LAB_ADDRESS_CITY,
    LAB_ADDRESS_STATE,
    LAB_ADDRESS_COUNTRY,
    LAB_ADDRESS_ZIP,
    LAB_LOGIN_NAME,
    LAB_PASSWORD
    add_iris_user USER_ORGANIZATION_NAME, none create a user
    USER_LAST_NAME, account in the
    USER_FIRST_NAME, SQL database
    USER_MIDDLE_NAME,
    USER_TITLE, USER_PHONE,
    USER_FAX, USER_E_MAIL,
    USER_BULK_MAIL,
    USER_ADDRESS_STREET_1,
    USER_ADDRESS_STREET_2,
    USER_ADDRESS_STREET_3,
    USER_ADDRESS_CITY,
    USER_ADDRESS_STATE,
    USER_ADDRESS_COUNTRY,
    USER_ADDRESS_ZIP,
    USER_LOGIN_NAME,
    USER_PASSWORD
    add_scanner LAB_ID, none create a
    ELECTRICAL_DRAWING, scanner entry
    ELECTRICAL_BOM, in the SQL
    MECHANICAL_DRAWING, database
    MECHANICAL_BOM
    add_scanner_serv_rec SCANNER_ID, LAB_ID, none create a
    SCANNER_CALIBRATED, scanner
    SCANNER_MAINTENANCE, service record
    SCANNER_REPAIRED, entry in the
    SCANNER_GAGE_SN, SQL database
    SCANNER_GAGE_NIST,
    SCANNER_LASER_SN,
    SERVICE_START_DATE,
    SERVICE_FINISH_DATE,
    SERVICE_DESCRIPTION,
    SERVICE_TECHNICIAN
    add_emodel E_MODEL_ID, none create an
    USER_LOGIN_NAME, emodel record
    SCANNER_ID, in the SQL
    USER_DESCRIPTION, database
    LAB_DESCRIPTION,
    PATIENT_LAST_NAME,
    PATIENT_FIRST_NAME,
    PATIENT_MIDDLE_NAME,
    PATIENT_TITLE,
    PATIENT_BIRTHDATE,
    PATIENT_ID, PATIENT_SEX,
    PATIENT_RACE,
    OPTION_FIELD,
    FILESERV_NAME,
    CREATION_DATE
    get_all_user_info USER_LOGIN_NAME, USER_ORGANIZATION_NAME, retrieve a
    USER_PASSWORD USER_LAST_NAME, listing of all
    USER_FIRST_NAME, information for
    USER_MIDDLE_NAME, specified user
    USER_TITLE, USER_PHONE,
    USER_E_MAIL,
    USER_BULK_MAIL,
    USER_ADDRESS_STREET_1,
    USER_ADDRESS_STREET_3,
    USER_ADDRESS_CITY,
    USER_ADDRESS_STATE,
    USER_ADDRESS_COUNTRY,
    USER_ADDRESS_ZIP
    get_all_lab_info LAB_LOGIN_NAME, LAB_ORGANIZATION_NAME, retrieve a
    LAB_PASSWORD LAB_LAST_NAME, listing of all
    LAB_FIRST_NAME, information for
    LAB_MIDDLE_NAME, specified lab
    LAB_TITLE, LAB_PHONE,
    LAB_E_MAIL,
    LAB_BULK_MAIL,
    LAB_ADDRESS_STREET_1,
    LAB_ADDRESS_STREET_3,
    LAB_ADDRESS_CITY,
    LAB_ADDRESS_STATE,
    LAB_ADDRESS_COUNTRY,
    LAB_ADDRESS_ZIP
    update_user_info USER_ID, none update
    USER_ORGANIZATION_NAME, information for
    USER_LAST_NAME, specified user
    USER_FIRST_NAME,
    USER_MIDDLE_NAME,
    USER_TITLE, USER_PHONE,
    USER_FAX, USER_E_MAIL,
    USER_BULK_MAIL,
    USER_ADDRESS_STREET_1,
    USER_ADDRESS_STREET_2,
    USER_ADDRESS_STREET_3,
    USER_ADDRESS_CITY,
    USER_ADDRESS_STATE,
    USER_ADDRESS_COUNTRY,
    USER_ADDRESS_ZIP,
    USER_LOGIN_NAME,
    OLD_PASSWORD,
    NEW_PASSWORD
    update_lab_info LAB_ID, none update
    LAB_ORGANIZATION_NAME, information for
    LAB_LAST_NAME, specified lab
    LAB_FIRST_NAME,
    LAB_MIDDLE_NAME,
    LAB_TITLE, LAB_PHONE,
    LAB_FAX, LAB_E_MAIL,
    LAB_ADDRESS_STREET_1,
    LAB_ADDRESS_STREET_2,
    LAB_ADDRESS_STREET_3,
    LAB_ADDRESS_CITY,
    LAB_ADDRESS_STATE,
    LAB_ADDRESS_COUNTRY,
    LAB_ADDRESS_ZIP,
    LAB_LOGIN_NAME,
    OLD_PASSWORD,
    NEW_PASSWORD
    auth_emodel_retv USER_LOGIN_NAME, E_MODEL_ID, FILESERV_IP, determine
    USER_PASSWORD, FILESERV_PORT whether user
    E_MODEL_ID or AUTHORIZATION DENIED owns
    specified
    emodel
    auth_login USER_LOGIN_NAME, PASSWORD_INCORRECT, or determine
    USER_PASSWORD AUTHORIZED, or whether user
    LOGIN_NAME_INCORRECT account
    exists,
    password
    correct
  • FIG. 14 illustrates an eModel for an impression of a patient's mouth according to yet another example embodiment of the present invention. In this example, the upper portion of the eModel 402 has been electronically moved and placed in its position above the lower portion of the eModel 401. The plaster models typically used in the dental care industry includes a base that allows easy spatial registration of the two portions of the eModel. This registration allows an end user to manipulate the parts of the eModel to observer and determine how the individual teeth interact as the two parts move together and apart from each other. The end user 110 may manipulate the eModel by moving, rotating and zooming to a perspective of interest.
  • FIGS. 15 a-b illustrate use of an eModel to determine spatial measurements corresponding to distances in a patient's mouth according to an embodiment of the present invention. In FIG. 15 a, a zoomed view of a lower portion of the eModel 401 is shown in which individual spatial measurements of a tooth 1501 is determined by a user visually marking a first side of a tooth 1502 using an input device such as a mouse and/or a trackball. Next the end user marks a second side 1503 of the tooth 1501 and the end user client system determines the distance between the two points as measured on the eModel polygonal mesh surface. This process may be repeated as many times as desired. In the past, the dental plaster model would be measured to obtain these values. The end user system may automatically calculate this information, more accurately without the need to maintain and use the physical models once a eModel has been scanned, generated and saved.
  • FIG. 15 b illustrates a similar set of spatial measurements being obtained for a series of teeth 1511 on the lower portion of the model 401 as well as a series of teeth 1512 on the upper portion of the model 402. These measurements 1511-1512 are typically used by dental care providers to determine a series of calculated values 1513 associated with the parabolic shape of a patient's mouth and teeth. The end user system may determine these values automatically from the spatial data measured by an end user that in the past would have required a significant amount of effort to obtain the measurements 1511-1512 and then calculate the values 1513.
  • FIGS. 16 a-b illustrate manipulating positions of patient's teeth using an eModel according to yet another example embodiment of the present invention. End users may be able to perform desired functions upon eModels that were difficult, or possibly impossible, to be performed upon physical models. FIG. 16 a illustrates an upper portion of an eModel of a patient's teeth and mouth from a physical model obtained before dental treatment is performed. In this example, the dental care provider wishes to move the location of a number of teeth to better align them with the parabolic arc that human teeth are typically aligned. The dental care provide, as an end user of the system, selects and manipulates the location of three upper teeth 1601-1603 from a current position to a desired position.
  • The end user interactively moves portions of the eModel that represent the desired teeth to a new position. The dental care provide may remove teeth to determine spacing of the remaining teeth as a course of treatment for a patient is created. All of the possible variations on treatment options may be explored using the eModel until a desired course of treatment is determined.
  • FIG. 16 b illustrates a different view for the eModel after the top front teeth 1601-1602 have been moved as shown in FIG. 16 a. A new eModel for an item, such as the dental models, may be created through the modification of an existing eModel. Once the new model exists, it may be viewed and manipulated in the same manner as any other eModel. Thus the various possible views of the original eModel may be viewed once a new eModel has been created. In addition, an end user may toggle between the two models to illustrate a before and after view of the teeth in light of a proposed treatment plan. All of this treatment planning which has occurred with physical models and paper and pencil calculations may now be performed using the end user computing system.
  • FIGS. 17 a-c illustrate combining an eModel of a patient's teeth with an x-ray according to yet another example embodiment of the present invention. Even more significant than the simple manipulation of eModels, new types of eModels that combine more than one form of digital image data to create a composite digital representation of patient data. FIG. 17 a illustrates a combination of a scanned eModel of a patient's teeth 401-402 that has been combined with a corresponding x-ray image 1701 for the patient. In this example, a profile of the entire scull is viewed in the x-ray image 1701. The two digital modules, for the teeth 401-402 and for the x-ray 1701, both typically possess common reference points from the tips of various teeth and similar structures. When these common points are identified in both models, the processing system can register and scale the two models to permit the combination of these two different models into a single module.
  • Like above, once a new eModel is created, the new eModel may itself be manipulated. FIG. 17 b illustrates the movement of a patient's lower jaw and teeth about the lower jaw pivot point 1702. As this movement occurs, the upper portion of the teeth eModel 402 and the lower portion of the teeth eModel 401 may be observed. As such, additional considerations may be viewed while a treatment plan is determined for a patient.
  • FIG. 17 c further illustrates the possible options as the composite eModel 1710 has been rotated to display more of a frontal view of the teeth eModels 401-402 in combination with the x-Ray. One skilled in the art will recognize that numerous variations on the types of x-rays and other digital image data, including but not limited to digital photographs and textual annotation, that may be combined with scanned eModels to obtain an image based eModel-processing system without deviating from the spirit and scope of the present invention as recited within the attached claims.
  • FIG. 18 illustrates processing modules used to implement an eModel data server according to an embodiment of the present invention. As discussed in FIG. 13, the eModel server 103 includes a communications server 1201 that has a client interface module 1301, an eModel generation interface module 1302, and a command and control-processing module 1301. In addition, the communications server 1201 includes a data communications interface module 1802 to perform processing functions needed to send and receive data communications to and from other processing modules over the local area network 1831. The command and control processing module 1301 receives requests for data operations and interacts with either a database I/O processing module 1803 or an eModel file I/O processing module 1804 to complete the processing. The database I/O processing module 1803 is responsible for all database query requests that occur when end users search for eModels of interest. The database I/O processing module 1803 also is responsible for storing new information into the relational database. The eModel file I/O processing module 1804 is responsible for storing eModels into the file storage database and for transferring stored eModels to end users.
  • The client interface module 1301 consists of an end user authentication module 1811, a database query module 1812, and a file transfer module 1813. The end user authentication module 1811 processes all end user attempts to log into the server to search for and access eModels. The database query module 1812 processes all incoming search requests to generate and process relational database queries to locate matching eModels based upon file header info data. The file transfer module 1813 processes all eModel transfer requests to send eModels to end-users.
  • The eModel generation interface module 1302 processes all commands to store new eModels generated in the eModel generation system into the data server. The eModel generation interface module 1302 includes a header extraction module 1821, a database storage module 1822, and a file server storage module 1823 to complete its functions. The header extraction module 1821 extracts the file header info data from incoming eModels and formats them for insertion into the relational database. The database storage module 1822 stores the formatted header data into the relational database as needed to permit easy and efficient searches. The file server storage module 1823 performs the operations needed to store the eModels into the file storage server.
  • FIG. 19 illustrates an operational flow for the processing performed within an eModel data server according to yet another example embodiment of the present invention. The process starts 1901 and the data server receives an eModel in module 1911 after it has been generated in some manner. One a new eModel has been received, module 1912 extracts a file header info data from the eModel file. This module 1912 formats this information and necessary and stores it into a searchable relational database for use in locating the corresponding eModel at a later date.
  • Next, the server stores the eModel file into a file storage server in module 1913 in order to allow the eModel to be retrieved by end users. The end users locate the eModels by submitting a query to the relational database to perform a search on the file header info data. The server receives the query request in module 1914 which causes the module 1914 to query the relational database and return the query results to the end user. The end user next sends a request for additional queries if necessary to identify any eModels of interest.
  • Once the end user has identifies a desired eModel, the end user sends a request for an eModel to the data server which is received in module 1915. Test module 1916 determines if the end user is permitted access to the requested eModel. If access is permitted, the eModel is transferred to the end user by module 1917 and the processing ends. If test module 1916 determines that access to the eModel is not permitted, the error message is returned to the end user by module 1919 and the processing also ends. One skilled in the art will recognize that alternate user authentication and access authorization mechanisms may be used to limit access to end users when database queries are made as well as when eModels are accessed without deviating from the spirit and scope of the present invention as recited within the attached claims.
  • FIG. 20 illustrates processing modules used to implement an end user client computer according to yet another example embodiment of the present invention. The end user client computer includes a set of processing modules to provide a window-based user environment to interact with eModels. The client computer 2001 includes a graphical user interface (GUI) module 2012, a command processing and control module 2011, an eModel Item Manipulate module 2010, an eModel storage module 2015, an eModel retrieval module 2013, and a data communications interface module 2014. The client computer 2001 may also include local mass storage 2016 to maintain eModels locally as well as on the data server 103.
  • The end user interacts with the client computer 2001 through the GUI interface module 2012. The end user enters commands using a pointing device such as a mouse or trackball and using keyboard commands. These commands are processed by the command processing and control module 2011 which send processing requests to the other modules to complete the requested command.
  • Commands to view an eModel is processed by the eModel retrieval module 2013. The eModel retrieval module 2013 obtains a list of the locally available eModels from the eModel storage module 2015 as well as communicates with the remote data server 103 using the data communications interface module 2014. The end user is presented with a list of available eModels from which an eModel is selected and retrieved. The eModel is retrieved from local storage 2016 if available. If not, the eModel may be transferred from the remote storage. If desired, the retrieved eModel may be stored locally when retrieved from the remote server to eliminate the need to down load the eModel in the future. Of course, the eModels may also be stored only upon the remote data server 103 and retrieved when needed.
  • Once an eModel has been retrieved from data storage, the eModel is processed within the eModel Item Manipulate module 2010. This module displays the eModel to the end user. The eModel Item Manipulate module 2010 includes an item display module 2021, an item set-up module 2022, and an x-Ray processing module 2023. The item display module 2021 displays the eModel graphically to the end user as well as performs the image display related manipulation operations such as zoom, pan, scroll, and similar visual operations. The item set-up module 2022 allows end users to obtain measurements of the eModel and modify the eModel to create new eModels that may be saved locally using the eModel retrieval module 2013. The x-Ray processing module 2023 performs the operations necessary to manipulate x-rays as well as combine them with other eModels to create and store composite eModels. One skilled in the art will recognize that additional manipulation modules may also be used to process commands associated with various composite eModels created using other supported digital image based eModels without deviating from the spirit and scope of the present invention as recited within the attached claims.
  • FIG. 21 illustrates an operational flow for the processing performed within an end user client computer according to yet another example embodiment of the present invention. The end user process starts 2101 and the end user logs into the client computer in module 2110. This logging in allows the client system to limit access to eModels if needed when the eModels represent confidential data, such as patient data, to only users who are trusted to use the data appropriately.
  • Once logged in, an end user is presented with a list of locally available eModels that were obtained in module 2111. Test module 1212 determines if a desired eModel is available locally. If test module 1212 determines that the desired eModel is not available, the client computer logs into a remote data server in module 2113 to locate the desired eModel. A database query used to locate the desired eModel is sent to the remote server in module 2114 before receiving a list of remotely available eModels. The end user selects the desired eModel and sends a request for the remotely available eModel to be transmitted to the client computer in module 2115. The client computer receives the eModel from the remote server 103, stores it locally, and displays it to the user for manipulation in module 2118.
  • If test module 2112 determines the desired eModel is locally available, the eModel is retrieved and displayed to the user in module 2117 before a user manipulates it in module 2118. The end user interactively manipulates the eModel as needed in module 2118 to perform the analysis and planning functions that the eModel is useful is assisting. Test module 2119 determines if a new eModel has been created that an end user wishes to save locally. If a new eModel is to be saved, module 2120 will save the newly created eModel locally before the processing ends 2102. If module 2119 determines that a new eModel is not to be saved, the processing ends immediately 2102.
  • FIG. 2 illustrates an example of a suitable operating environment 121 in which the invention may be implemented. The operating environment is only one example of a suitable operating environment 121 and is not intended to suggest any limitation as to the scope of use or functionality of the invention. Other well known computing systems, environments, and/or configurations that may be suitable for use with the invention include, but are not limited to, personal computers, server computers, held-held or laptop devices, multiprocessor systems, microprocessor-based systems, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
  • The invention may also be described in the general context of computer-executable instructions, such as program modules, executed by one or more computers or other devices. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Typically the functionality of the program modules may be combined or distributed in desired in various embodiments.
  • A network server 121 typically includes at least some form of computer readable media. Computer readable media can be any available media that can be accessed by the network server 110. By way of example, and not limitation, computer readable media may comprise computer storage media and communication media. Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, BC-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by the network server 110.
  • Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of any of the above should also be included within the scope of computer readable media.
  • While the above embodiments of the present invention describe a network based processing system providing processing services to remote clients, one skilled in the art will recognize that the various distributed computing architectures may be used to implement the present invention as recited within the attached claims. It is to be understood that other embodiments may be utilized and operational changes may be made without departing from the scope of the present invention.
  • The foregoing description of the exemplary embodiments of the invention has been presented for the purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many modifications and variations are possible in light of the above teaching. It is intended that the scope of the invention be limited not with this detailed description, but rather by the claims appended hereto. Thus the present invention is presently embodied as a method, apparatus, computer storage medium or propagated signal containing a computer program for providing a method, apparatus, and article of manufacture for providing a distributed computing system for the creation and distribution of electronic models of objects.

Claims (45)

1. A method for providing electronic delivery of electronic model images, the method comprising:
generating one or more electronic model images, a portion of the electronic model images being generated from scanned electronic data of a physical object;
storing the electronic model images within computer readable memory of a server-based computing system;
delivering the electronic model images to a remote client computer over a distributed communications network;
manipulating the electronic model images upon the remote client computer; and
performing analysis and a course of action using the manipulated electronic model images;
wherein the electronic model images comprise in part a polygonal mesh representation of the physical object.
2. The method according to claim 1, wherein the method further comprises:
generating a new electronic model image using the manipulated electronic model image.
3. The method according to claim 2, wherein the method further comprises:
storing the electronic model images within computer readable memory of the remote client computer.
4. The method according to claim 1, wherein the generating one or more electronic model images comprises:
combining the polygonal mesh representation of the physical object with one or more electronic model image of a different type that is related to the physical object.
5. The method according to claim 4, wherein the one or more electronic model image of a different type comprise one or more of the following types of digital images: scanned x-ray images, scanned photographic images, and computer generated images.
6. The method according to claim 1, wherein the distributed computer network comprises the Internet.
7. The method according to claim 1, wherein manipulating the electronic model images comprises:
displaying the electronic model images on a visual display device;
altering the scale and orientation of the electronic model images in response to user generated commands; and
determining numeric values associated with physical characteristics of the physical object using the electronic model images.
8. The method according to claim 7, wherein manipulating the electronic model images further comprises:
moving one or more portions of the electronic model image relative to other portions of the electronic model image on the visual display device to determine the interaction of the corresponding portions of the physical object.
9. A method for providing electronic delivery of electronic model images, the method comprising:
generating one or more electronic model images, a portion of the electronic model images being generated from scanned electronic data of a physical object;
storing the electronic model images within computer readable memory of a server-based computing system;
delivering the electronic model images to a remote client computer over a distributed communications network;
manipulating the electronic model images upon the remote client computer;
performing analysis and a course of action using the manipulated electronic model images;
generating a new electronic model image using the manipulated electronic model image; and
storing the electronic model images within computer readable memory of the remote client computer;
wherein the electronic model images comprise in part a polygonal mesh representation of the physical object; and
manipulating the electronic model images comprises:
displaying the electronic model images on a visual display device;
altering the scale and orientation of the electronic model images in response to user generated commands;
determining numeric values associated with physical characteristics of the physical object using the electronic model images; and
moving one or more portions of the electronic model image relative to other portions of the electronic model image on the visual display device to determine the interaction of the corresponding portions of the physical object.
10. The method according to claim 9, wherein the generating one or more electronic model images comprises:
combining the polygonal mesh representation of the physical object with one or more electronic model image of a different type that is related to the physical object;
the one or more electronic model image of a different type comprise one or more of the following types of digital images: scanned x-ray images, scanned photographic images, and computer generated images; and
the distributed computer network comprises the Internet.
11. A method for providing electronic model image data files to a remote client computer using a server-based computing system over a distributed communications network, the method comprising:
receiving an electronic model image data files by the server-based computing system;
storing the electronic model image data files within non-volatile computer readable memory within the server-based computing system;
receiving a search query from the remote client computer to identify one or more electronic model image data files;
receiving a file transfer request from the remote client computer requesting one or more electronic model image data files; and
transmitting one or more electronic model image data files to the remote client computer;
wherein the electronic model image data files comprise:
a file header info data block containing data used to identify a physical object represented by the electronic model image data file; and
an electronic model image, a portion of the electronic model image containing a polygonal mesh representation of the physical object generated from scanned electronic data of a physical object.
12. The method according to claim 11, wherein the electronic model image comprises:
the polygonal mesh representation of the physical object; and
one or more electronic model image of a different type that is related to the physical object.
13. The method according to claim 12, wherein the one or more electronic model image of a different type comprise one or more of the following types of digital images: scanned x-ray images, scanned photographic images, and computer generated images.
14. The method according to claim 11, wherein the distributed computer network comprises the Internet.
15. The method according to claim 11 wherein the storing the electronic model image data files comprises:
storing the file header info data extracted from the file header info data block into a relational database for use in processing the search queries received from the remote client computer; and
storing the electronic model image data files into a file storage database for use in processing file transfer requests received from the remote client computer.
16. A computer program data product readable by a computing system and encoding instructions implementing a method for providing electronic model image data files to a remote client computer using a server-based computing system over a distributed communications network, the method comprising:
receiving an electronic model image data files by the server-based computing system;
storing the electronic model image data files within non-volatile computer readable memory within the server-based computing system;
receiving a search query from the remote client computer to identify one or more electronic model image data files;
receiving a file transfer request from the remote client computer requesting one or more electronic model image data files; and
transmitting one or more electronic model image data files to the remote client computer;
wherein the electronic model image data files comprise:
a file header info data block containing data used to identify a physical object represented by the electronic model image data file; and
an electronic model image, a portion of the electronic model image containing a polygonal mesh representation of the physical object generated from scanned electronic data of a physical object.
17. The computer data product according to claim 16, wherein the electronic model image comprises:
the polygonal mesh representation of the physical object; and
one or more electronic model image of a different type that is related to the physical object.
18. The computer data product according to claim 17, wherein the one or more electronic model image of a different type comprise one or more of the following types of digital images: scanned x-ray images, scanned photographic images, and computer generated images.
19. The computer data product according to claim 16, wherein the distributed computer network comprises the Internet.
20. The computer data product according to claim 16, wherein the storing the electronic model image data files comprises:
storing the file header info data extracted from the file header info data block into a relational database for use in processing the search queries received from the remote client computer; and
storing the electronic model image data files into a file storage database for use in processing file transfer requests received from the remote client computer.
21. A server based computing system for providing electronic model image data files to a remote client computer over a distributed communications network, the computing system comprises:
a communications connection to the distributed communications network;
a communications server module for receiving remotely generated electronic model image data files, receiving search query requests from the remote client computer, and transmitting a requested electronic model image data file to the remote client computer in response to a file transfer request;
a relational database module for maintaining a electronic model image description in a relational database corresponding to each received electronic model image data file for use in processing the search queries received from the remote client computer; and
a file storage module for storing the electronic model image data files for use in processing file transfer requests received from the remote client computer;
wherein the electronic model image data files comprise:
a file header info data block containing data used to identify a physical object represented by the electronic model image data file; and
an electronic model image, a portion of the electronic model image containing a polygonal mesh representation of the physical object generated from scanned electronic data of a physical object.
22. The computing system according to claim 21, wherein the electronic model image comprises:
the polygonal mesh representation of the physical object; and
one or more electronic model image of a different type that is related to the physical object.
23. The computer system according to claim 22, wherein the one or more electronic model image of a different type comprise one or more of the following types of digital images: scanned x-ray images, scanned photographic images, and computer generated images.
24. The computer system according to claim 22, wherein the electronic model image description comprises file header info data extracted from the file header info data block within the electronic model image data file.
25. The computer system according to claim 24, wherein the distributed computer network comprises the Internet.
26. A method for receiving electronic model image data files by a remote client computer from a server-based computing system over a distributed communications network, the method comprising:
transmitting a search query from the remote client computer to the server-based computing system to identify one or more electronic model image data files stored within the server-based computing system;
transmitting a file transfer request from the remote client computer to the server-based computing system requesting one or more electronic model image data files;
receiving one or more electronic model image data files;
manipulating the electronic model images upon the remote client computer; and
performing analysis and a course of action using the manipulated electronic model images;
wherein the electronic model image data files comprise:
a file header info data block containing data used to identify a physical object represented by the electronic model image data file; and
an electronic model image, a portion of the electronic model image containing a polygonal mesh representation of the physical object generated from scanned electronic data of a physical object.
27. The method according to claim 26, wherein the electronic model image comprises:
the polygonal mesh representation of the physical object; and
one or more electronic model image of a different type that is related to the physical object.
28. The method according to claim 27, wherein the one or more electronic model image of a different type comprise one or more of the following types of digital images: scanned x-ray images, scanned photographic images, and computer generated images.
29. The method according to claim 28, wherein the distributed computer network comprises the Internet.
30. The method according to claim 26, wherein the method further comprises:
generating a new electronic model image using the manipulated electronic model image.
31. The method according to claim 30, wherein the method further comprises:
storing the electronic model images within computer readable memory of the remote client computer.
32. The method according to claim 26, wherein manipulating the electronic model images comprises:
displaying the electronic model images on a visual display device;
altering the scale and orientation of the electronic model images in response to user generated commands; and
determining numeric values associated with physical characteristics of the physical object using the electronic model images.
33. The method according to claim 32, where manipulating the electronic model images further comprises:
moving one or more portions of the electronic model image relative to other portions of the electronic model image on the visual display device to determine the interaction of the corresponding portions of the physical object.
34. A method for receiving electronic model image data files by a remote client computer from a server-based computing system over a distributed communications network, the method comprising:
transmitting a search query from the remote client computer to the server-based computing system to identify one or more electronic model image data files stored within the server-based computing system;
transmitting a file transfer request from the remote client computer to the server-based computing system requesting one or more electronic model image data files;
receiving one or more electronic model image data files;
manipulating the electronic model images upon the remote client computer; and
performing analysis and a course of action using the manipulated electronic model images;
wherein
manipulating the electronic model images comprises:
displaying the electronic model images on a visual display device;
altering the scale and orientation of the electronic model images in response to user generated commands;
determining numeric values associated with physical characteristics of the physical object using the electronic model images; and
moving one or more portions of the electronic model image relative to other portions of the electronic model image on the visual display device to determine the interaction of the corresponding portions of the physical object; and the electronic model image data files comprise:
a file header info data block containing data used to identify a physical object represented by the electronic model image data file; and
an electronic model image, a portion of the electronic model image containing a polygonal mesh representation of the physical object generated from scanned electronic data of a physical object.
35. The method according to claim 34, wherein the method further comprises:
generating a new electronic model image using the manipulated electronic model image; and
storing the electronic model images within computer readable memory of the remote client computer.
36. A computer program data product readable by a computing system and encoding instructions implementing a method for receiving electronic model image data files by a remote client computer from a server-based computing system over a distributed communications network, the method comprising:
transmitting a search query from the remote client computer to the server-based computing system to identify one or more electronic model image data files stored within the server-based computing system;
transmitting a file transfer request from the remote client computer to the server-based computing system requesting one or more electronic model image data files;
receiving one or more electronic model image data files;
manipulating the electronic model images upon the remote client computer; and
performing analysis and a course of action using the manipulated electronic model images;
wherein the electronic model image data files comprise:
a file header info data block containing data used to identify a physical object represented by the electronic model image data file; and
an electronic model image, a portion of the electronic model image containing a polygonal mesh representation of the physical object generated from scanned electronic data of a physical object.
37. The computer data product according to claim 36, wherein the electronic model image comprises:
the polygonal mesh representation of the physical object; and
one or more electronic model image of a different type that is related to the physical object.
38. The computer data product according to claim 37, wherein the one or more electronic model image of a different type comprise one or more of the following types of digital images: scanned x-ray images, scanned photographic images, and computer generated images.
39. The computer data product according to claim 38, wherein the distributed computer network comprises the Internet.
40. The computer data product according to claim 36, wherein the method further comprises:
generating a new electronic model image using the manipulated electronic model image.
41. The computer data product according to claim 40, wherein the method further comprises:
storing the electronic model images within computer readable memory of the remote client computer.
42. The computer data product according to claim 36, wherein manipulating the electronic model images comprises:
displaying the electronic model images on a visual display device;
altering the scale and orientation of the electronic model images in response to user generated commands; and
determining numeric values associated with physical characteristics of the physical object using the electronic model images.
43. The computer data product according to claim 42, wherein manipulating the electronic model images further comprises:
moving one or more portions of the electronic model image relative to other portions of the electronic model image on the visual display device to determine the interaction of the corresponding portions of the physical object.
44. A computer program data product readable by a computing system and encoding instructions implementing a method for receiving electronic model image data files by a remote client computer from a server-based computing system over a distributed communications network, the method comprising:
transmitting a search query from the remote client computer to the server-based computing system to identify one or more electronic model image data files stored within the server-based computing system;
transmitting a file transfer request from the remote client computer to the server-based computing system requesting one or more electronic model image data files; and
receiving one or more electronic model image data files;
manipulating the electronic model images upon the remote client computer; and
performing analysis and a course of action using the manipulated electronic model images;
wherein
manipulating the electronic model images comprises:
displaying the electronic model images on a visual display device;
altering the scale and orientation of the electronic model images in response to user generated commands;
determining numeric values associated with physical characteristics of the physical object using the electronic model images; and
moving one or more portions of the electronic model image relative to other portions of the electronic model image on the visual display device to determine the interaction of the corresponding portions of the physical object; and the electronic model image data files comprise:
a file header info data block containing data used to identify a physical object represented by the electronic model image data file; and
an electronic model image, a portion of the electronic model image containing a polygonal mesh representation of the physical object generated from scanned electronic data of a physical object.
45. The computer data product according to claim 44, wherein the method further comprises:
generating a new electronic model image using the manipulated electronic model image; and
storing the electronic model images within computer readable memory of the remote client computer.
US11/330,797 2001-04-29 2006-01-11 Method and apparatus for electronic delivery of electronic model images Abandoned US20060184637A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US11/330,797 US20060184637A1 (en) 2001-04-29 2006-01-11 Method and apparatus for electronic delivery of electronic model images
US12/608,774 US20100169056A1 (en) 2001-04-29 2009-10-29 Method and apparatus for electronic delivery of electronic model images

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/846,037 US7200642B2 (en) 2001-04-29 2001-04-29 Method and apparatus for electronic delivery of electronic model images
US11/330,797 US20060184637A1 (en) 2001-04-29 2006-01-11 Method and apparatus for electronic delivery of electronic model images

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US09/846,037 Continuation US7200642B2 (en) 2001-04-29 2001-04-29 Method and apparatus for electronic delivery of electronic model images

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US12/608,774 Continuation US20100169056A1 (en) 2001-04-29 2009-10-29 Method and apparatus for electronic delivery of electronic model images

Publications (1)

Publication Number Publication Date
US20060184637A1 true US20060184637A1 (en) 2006-08-17

Family

ID=25296768

Family Applications (3)

Application Number Title Priority Date Filing Date
US09/846,037 Expired - Lifetime US7200642B2 (en) 2001-04-29 2001-04-29 Method and apparatus for electronic delivery of electronic model images
US11/330,797 Abandoned US20060184637A1 (en) 2001-04-29 2006-01-11 Method and apparatus for electronic delivery of electronic model images
US12/608,774 Abandoned US20100169056A1 (en) 2001-04-29 2009-10-29 Method and apparatus for electronic delivery of electronic model images

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US09/846,037 Expired - Lifetime US7200642B2 (en) 2001-04-29 2001-04-29 Method and apparatus for electronic delivery of electronic model images

Family Applications After (1)

Application Number Title Priority Date Filing Date
US12/608,774 Abandoned US20100169056A1 (en) 2001-04-29 2009-10-29 Method and apparatus for electronic delivery of electronic model images

Country Status (1)

Country Link
US (3) US7200642B2 (en)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050010450A1 (en) * 2003-05-05 2005-01-13 Geodigm Corporation Method and apparatus for utilizing electronic models of patient teeth in interdisciplinary dental treatment plans
US20090276541A1 (en) * 2008-05-02 2009-11-05 British Telecommunications Public Limited Company Graphical data processing
US7913311B2 (en) 2001-12-12 2011-03-22 Rossmann Alain Methods and systems for providing access control to electronic data
US7921288B1 (en) 2001-12-12 2011-04-05 Hildebrand Hal S System and method for providing different levels of key security for controlling access to secured items
US7921284B1 (en) 2001-12-12 2011-04-05 Gary Mark Kinghorn Method and system for protecting electronic data in enterprise environment
US7921450B1 (en) 2001-12-12 2011-04-05 Klimenty Vainstein Security system using indirect key generation from access rules and methods therefor
US7930756B1 (en) 2001-12-12 2011-04-19 Crocker Steven Toye Multi-level cryptographic transformations for securing digital assets
US7950066B1 (en) 2001-12-21 2011-05-24 Guardian Data Storage, Llc Method and system for restricting use of a clipboard application
US8006280B1 (en) 2001-12-12 2011-08-23 Hildebrand Hal S Security system for generating keys from access rules in a decentralized manner and methods therefor
US8127366B2 (en) 2003-09-30 2012-02-28 Guardian Data Storage, Llc Method and apparatus for transitioning between states of security policies used to secure electronic documents
US8176334B2 (en) 2002-09-30 2012-05-08 Guardian Data Storage, Llc Document security system that permits external users to gain access to secured files
US8266674B2 (en) 2001-12-12 2012-09-11 Guardian Data Storage, Llc Method and system for implementing changes to security policies in a distributed security system
US8327138B2 (en) 2003-09-30 2012-12-04 Guardian Data Storage Llc Method and system for securing digital assets using process-driven security policies
USRE43906E1 (en) 2001-12-12 2013-01-01 Guardian Data Storage Llc Method and apparatus for securing digital assets
US8543827B2 (en) 2001-12-12 2013-09-24 Intellectual Ventures I Llc Methods and systems for providing access control to secured data
US8707034B1 (en) * 2003-05-30 2014-04-22 Intellectual Ventures I Llc Method and system for using remote headers to secure electronic files
US8918839B2 (en) 2001-12-12 2014-12-23 Intellectual Ventures I Llc System and method for providing multi-location access management to secured items
US10033700B2 (en) 2001-12-12 2018-07-24 Intellectual Ventures I Llc Dynamic evaluation of access rights
US10360545B2 (en) 2001-12-12 2019-07-23 Guardian Data Storage, Llc Method and apparatus for accessing secured electronic data off-line

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7200642B2 (en) * 2001-04-29 2007-04-03 Geodigm Corporation Method and apparatus for electronic delivery of electronic model images
US7870203B2 (en) * 2002-03-08 2011-01-11 Mcafee, Inc. Methods and systems for exposing messaging reputation to an end user
US7624158B2 (en) * 2003-01-14 2009-11-24 Eycast Inc. Method and apparatus for transmission and storage of digital medical data
US7716036B2 (en) * 2003-04-24 2010-05-11 International Business Machines Corporation Method and apparatus to use clock bursting to minimize command latency in a logic simulation hardware emulator / accelerator
US20050182654A1 (en) * 2004-02-14 2005-08-18 Align Technology, Inc. Systems and methods for providing treatment planning
US7824346B2 (en) * 2004-03-11 2010-11-02 Geodigm Corporation Determining condyle displacement utilizing electronic models of dental impressions having a common coordinate system
US7827038B2 (en) * 2004-06-04 2010-11-02 Resmed Limited Mask fitting system and method
KR20070052645A (en) * 2005-11-17 2007-05-22 삼성전자주식회사 Apparatus and method for managing user interface
JP4829635B2 (en) 2006-02-17 2011-12-07 キヤノン株式会社 Communication apparatus, communication method, network configuration method, and communication system
US20070233844A1 (en) 2006-03-29 2007-10-04 Murata Kikai Kabushiki Kaisha Relay device and communication system
US8254637B2 (en) * 2006-07-27 2012-08-28 Resmed Limited Mask fitting system and method
US20080050692A1 (en) * 2006-08-22 2008-02-28 Jack Keith Hilliard System and method for fabricating orthodontic aligners
WO2008066891A2 (en) * 2006-11-28 2008-06-05 Sensable Technologies, Inc. Systems for haptic design of dental restorations
EP1990975B1 (en) * 2007-05-09 2013-02-20 Murata Machinery, Ltd. Relay server and relay communication system
AU2009206331A1 (en) 2008-01-23 2009-07-30 Sensable Technologies, Inc. Haptically enabled dental modeling system
US20100291505A1 (en) * 2009-01-23 2010-11-18 Curt Rawley Haptically Enabled Coterminous Production of Prosthetics and Patient Preparations in Medical and Dental Applications
CN102858266B (en) 2010-04-20 2015-07-22 登塔尔图像科技公司 Reduction and removal of artifacts from a three-dimensional dental X-ray data set using surface scan information
US9684952B2 (en) 2010-04-20 2017-06-20 Dental Imaging Technologies Corporation Alignment of mixed-modality data sets for reduction and removal of imaging artifacts
US8941644B2 (en) 2011-06-14 2015-01-27 Microsoft Corporation Computing three-dimensional image models in parallel
US10860748B2 (en) * 2017-03-08 2020-12-08 General Electric Company Systems and method for adjusting properties of objects depicted in computer-aid design applications

Citations (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5911044A (en) * 1996-11-08 1999-06-08 Ricoh Company, Ltd. Network image scanning system which transmits image information from a scanner over a network to a client computer
US6072496A (en) * 1998-06-08 2000-06-06 Microsoft Corporation Method and system for capturing and representing 3D geometry, color and shading of facial expressions and other animated objects
US6217334B1 (en) * 1997-01-28 2001-04-17 Iris Development Corporation Dental scanning method and apparatus
US6261248B1 (en) * 1999-03-29 2001-07-17 Yoshitomo Takaishi Maxillary tooth dimension determining system
US6315553B1 (en) * 1999-11-30 2001-11-13 Orametrix, Inc. Method and apparatus for site treatment of an orthodontic patient
US20020018981A1 (en) * 1997-04-10 2002-02-14 Matts Andersson Arrangement and system for production of dental products and transmission of information
US20020059049A1 (en) * 2000-04-05 2002-05-16 Therics, Inc System and method for rapidly customizing design, manufacture and/or selection of biomedical devices
US20020069201A1 (en) * 2000-12-04 2002-06-06 Yu-Jung Cheng Method for downloading selectable progressive mesh models under the environment of World Wide Web
US6438266B1 (en) * 1998-08-27 2002-08-20 Lucent Technologies Inc. Encoding images of 3-D objects with improved rendering time and transmission processes
US6466700B1 (en) * 1997-12-31 2002-10-15 Koninklijke Philips Electronics N.V. Method of processing a noisy multidimensional image and medical imaging apparatus for carrying out this method
US6464496B1 (en) * 1999-11-30 2002-10-15 Orametrix, Inc. Method and apparatus for determining and monitoring orthodontic treatment
US6549819B1 (en) * 2000-06-13 2003-04-15 Larry Dale Danduran Method of producing a three-dimensional image
US6575751B1 (en) * 1998-11-03 2003-06-10 Shade Analyzing Technologies, Inc. Interactive dental restorative network
US6608682B2 (en) * 1999-01-25 2003-08-19 Amnis Corporation Imaging and analyzing parameters of small moving objects such as cells
US6608628B1 (en) * 1998-11-06 2003-08-19 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration (Nasa) Method and apparatus for virtual interactive medical imaging by multiple remotely-located users
US6611617B1 (en) * 1995-07-26 2003-08-26 Stephen James Crampton Scanning apparatus and method
US6775712B2 (en) * 1994-04-19 2004-08-10 Canon Kabushiki Kaisha Network system in which plurality of image processing apparatuses are connected
US6816159B2 (en) * 2001-12-10 2004-11-09 Christine M. Solazzi Incorporating a personalized wireframe image in a computer software application
US6874131B2 (en) * 1998-12-23 2005-03-29 Canon Kabushiki Kaisha Method and system for client-less viewing of scalable documents
US20060275737A1 (en) * 2002-07-22 2006-12-07 Cadent Ltd. Method for defining a finish line of a dental prosthesis
US20070026363A1 (en) * 1998-11-03 2007-02-01 Maryann Lehmann Interactive dental restorative network

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6227850B1 (en) * 1999-05-13 2001-05-08 Align Technology, Inc. Teeth viewing system
US6632089B2 (en) * 1999-11-30 2003-10-14 Orametrix, Inc. Orthodontic treatment planning with user-specified simulation of tooth movement
US6587828B1 (en) * 1999-11-30 2003-07-01 Ora Metrix, Inc. Method and apparatus for automated generation of a patient treatment plan
MXPA01008721A (en) * 1999-12-29 2003-06-24 Ormco Corp Custom orthodontic appliance forming method and apparatus.
US6463344B1 (en) * 2000-02-17 2002-10-08 Align Technology, Inc. Efficient data representation of teeth model
US7630750B2 (en) * 2001-02-05 2009-12-08 The Research Foundation For The State University Of New York Computer aided treatment planning
US7200642B2 (en) * 2001-04-29 2007-04-03 Geodigm Corporation Method and apparatus for electronic delivery of electronic model images

Patent Citations (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6775712B2 (en) * 1994-04-19 2004-08-10 Canon Kabushiki Kaisha Network system in which plurality of image processing apparatuses are connected
US6611617B1 (en) * 1995-07-26 2003-08-26 Stephen James Crampton Scanning apparatus and method
US5911044A (en) * 1996-11-08 1999-06-08 Ricoh Company, Ltd. Network image scanning system which transmits image information from a scanner over a network to a client computer
US6217334B1 (en) * 1997-01-28 2001-04-17 Iris Development Corporation Dental scanning method and apparatus
US20020018981A1 (en) * 1997-04-10 2002-02-14 Matts Andersson Arrangement and system for production of dental products and transmission of information
US6466700B1 (en) * 1997-12-31 2002-10-15 Koninklijke Philips Electronics N.V. Method of processing a noisy multidimensional image and medical imaging apparatus for carrying out this method
US6072496A (en) * 1998-06-08 2000-06-06 Microsoft Corporation Method and system for capturing and representing 3D geometry, color and shading of facial expressions and other animated objects
US6438266B1 (en) * 1998-08-27 2002-08-20 Lucent Technologies Inc. Encoding images of 3-D objects with improved rendering time and transmission processes
US6786726B2 (en) * 1998-11-03 2004-09-07 Shade Analyzing Technologies, Inc. Interactive dental restorative network
US20070026363A1 (en) * 1998-11-03 2007-02-01 Maryann Lehmann Interactive dental restorative network
US6575751B1 (en) * 1998-11-03 2003-06-10 Shade Analyzing Technologies, Inc. Interactive dental restorative network
US6608628B1 (en) * 1998-11-06 2003-08-19 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration (Nasa) Method and apparatus for virtual interactive medical imaging by multiple remotely-located users
US6874131B2 (en) * 1998-12-23 2005-03-29 Canon Kabushiki Kaisha Method and system for client-less viewing of scalable documents
US6608682B2 (en) * 1999-01-25 2003-08-19 Amnis Corporation Imaging and analyzing parameters of small moving objects such as cells
US6261248B1 (en) * 1999-03-29 2001-07-17 Yoshitomo Takaishi Maxillary tooth dimension determining system
US6315553B1 (en) * 1999-11-30 2001-11-13 Orametrix, Inc. Method and apparatus for site treatment of an orthodontic patient
US6464496B1 (en) * 1999-11-30 2002-10-15 Orametrix, Inc. Method and apparatus for determining and monitoring orthodontic treatment
US20020059049A1 (en) * 2000-04-05 2002-05-16 Therics, Inc System and method for rapidly customizing design, manufacture and/or selection of biomedical devices
US20040243481A1 (en) * 2000-04-05 2004-12-02 Therics, Inc. System and method for rapidly customizing design, manufacture and/or selection of biomedical devices
US6549819B1 (en) * 2000-06-13 2003-04-15 Larry Dale Danduran Method of producing a three-dimensional image
US20020069201A1 (en) * 2000-12-04 2002-06-06 Yu-Jung Cheng Method for downloading selectable progressive mesh models under the environment of World Wide Web
US6816159B2 (en) * 2001-12-10 2004-11-09 Christine M. Solazzi Incorporating a personalized wireframe image in a computer software application
US20060275737A1 (en) * 2002-07-22 2006-12-07 Cadent Ltd. Method for defining a finish line of a dental prosthesis

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9129120B2 (en) 2001-12-12 2015-09-08 Intellectual Ventures I Llc Methods and systems for providing access control to secured data
US8341406B2 (en) 2001-12-12 2012-12-25 Guardian Data Storage, Llc System and method for providing different levels of key security for controlling access to secured items
US7913311B2 (en) 2001-12-12 2011-03-22 Rossmann Alain Methods and systems for providing access control to electronic data
US7921288B1 (en) 2001-12-12 2011-04-05 Hildebrand Hal S System and method for providing different levels of key security for controlling access to secured items
US7921284B1 (en) 2001-12-12 2011-04-05 Gary Mark Kinghorn Method and system for protecting electronic data in enterprise environment
US7921450B1 (en) 2001-12-12 2011-04-05 Klimenty Vainstein Security system using indirect key generation from access rules and methods therefor
US7930756B1 (en) 2001-12-12 2011-04-19 Crocker Steven Toye Multi-level cryptographic transformations for securing digital assets
US10360545B2 (en) 2001-12-12 2019-07-23 Guardian Data Storage, Llc Method and apparatus for accessing secured electronic data off-line
US8006280B1 (en) 2001-12-12 2011-08-23 Hildebrand Hal S Security system for generating keys from access rules in a decentralized manner and methods therefor
US8341407B2 (en) 2001-12-12 2012-12-25 Guardian Data Storage, Llc Method and system for protecting electronic data in enterprise environment
US10229279B2 (en) 2001-12-12 2019-03-12 Intellectual Ventures I Llc Methods and systems for providing access control to secured data
US8266674B2 (en) 2001-12-12 2012-09-11 Guardian Data Storage, Llc Method and system for implementing changes to security policies in a distributed security system
US10769288B2 (en) 2001-12-12 2020-09-08 Intellectual Property Ventures I Llc Methods and systems for providing access control to secured data
US10033700B2 (en) 2001-12-12 2018-07-24 Intellectual Ventures I Llc Dynamic evaluation of access rights
US9542560B2 (en) 2001-12-12 2017-01-10 Intellectual Ventures I Llc Methods and systems for providing access control to secured data
USRE43906E1 (en) 2001-12-12 2013-01-01 Guardian Data Storage Llc Method and apparatus for securing digital assets
US8543827B2 (en) 2001-12-12 2013-09-24 Intellectual Ventures I Llc Methods and systems for providing access control to secured data
US8918839B2 (en) 2001-12-12 2014-12-23 Intellectual Ventures I Llc System and method for providing multi-location access management to secured items
US7950066B1 (en) 2001-12-21 2011-05-24 Guardian Data Storage, Llc Method and system for restricting use of a clipboard application
US8943316B2 (en) 2002-02-12 2015-01-27 Intellectual Ventures I Llc Document security system that permits external users to gain access to secured files
USRE47443E1 (en) 2002-09-30 2019-06-18 Intellectual Ventures I Llc Document security system that permits external users to gain access to secured files
US8176334B2 (en) 2002-09-30 2012-05-08 Guardian Data Storage, Llc Document security system that permits external users to gain access to secured files
US20050010450A1 (en) * 2003-05-05 2005-01-13 Geodigm Corporation Method and apparatus for utilizing electronic models of patient teeth in interdisciplinary dental treatment plans
US8707034B1 (en) * 2003-05-30 2014-04-22 Intellectual Ventures I Llc Method and system for using remote headers to secure electronic files
US8739302B2 (en) 2003-09-30 2014-05-27 Intellectual Ventures I Llc Method and apparatus for transitioning between states of security policies used to secure electronic documents
US8127366B2 (en) 2003-09-30 2012-02-28 Guardian Data Storage, Llc Method and apparatus for transitioning between states of security policies used to secure electronic documents
US8327138B2 (en) 2003-09-30 2012-12-04 Guardian Data Storage Llc Method and system for securing digital assets using process-driven security policies
US20090276541A1 (en) * 2008-05-02 2009-11-05 British Telecommunications Public Limited Company Graphical data processing

Also Published As

Publication number Publication date
US7200642B2 (en) 2007-04-03
US20020188664A1 (en) 2002-12-12
US20100169056A1 (en) 2010-07-01

Similar Documents

Publication Publication Date Title
US7200642B2 (en) Method and apparatus for electronic delivery of electronic model images
US7215803B2 (en) Method and apparatus for interactive remote viewing and collaboration of dental images
US10067500B2 (en) Generating of 3D-printed custom wearables
USRE44465E1 (en) Method and apparatus for electronically generating a color dental occlusion map within electronic model images
JP5134664B2 (en) Annotation device
US20170193693A1 (en) Systems and methods for generating time discrete 3d scenes
US8203575B2 (en) Method and system for accessing a slide from a remote workstation
US20140157579A1 (en) Networked marketplace for custom 3D fabrication
WO2001098925A2 (en) Method, system and computer program product for delivering spatially referenced information in a global computer network
JP2009295149A (en) Image forming apparatus, control method thereof, and control program
US20090284527A1 (en) Validating user generated three-dimensional models
Algee‐Hewitt et al. The reality of virtual anthropology: comparing digitizer and laser scan data collection methods for the quantitative assessment of the cranium
JP2004110459A (en) Three-dimensional model space creating device, three-dimensional model space creating method, three-dimensional model space creating program, and content transmitting server
Dietrich et al. InvertNet: a new paradigm for digital access to invertebrate collections
US20040017369A1 (en) Method and apparatus for computer generation of electronic model images
Jin et al. PAI-WSIT: an AI service platform with support for storing and sharing whole-slide images with metadata and annotations
JP2001273496A (en) Face collation system
Kwon et al. Virtual heritage system: Modeling, database & presentation
WO2002093493A1 (en) Method for acquiring a 3d face digital data froom 2d photograph aand a system performing the same
Liu et al. Robust and accurate mobile visual localization and its applications
Gaiani et al. VR as work tool for architectural & archaeological restoration: the ancient Appian way 3D web virtual GIS
JP2003308284A (en) Information processing system, device and method for preparing shared document, recording medium and program
JP4438002B2 (en) 3D data generation method of features using network
CN109215109A (en) A kind of three-dimensional rebuilding method and device based on depth camera mould group
US20030220778A1 (en) Method and apparatus for electronically simulating jaw function within electronic model images

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION

AS Assignment

Owner name: GEODIGM CORPORATION, MINNESOTA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HULTGREN, BRUCE WILLARD;VADNAIS, TIMOTHY W.;MARSHALL, MICHAEL CRAIG;AND OTHERS;SIGNING DATES FROM 20011220 TO 20011221;REEL/FRAME:024666/0227