Patent Publication Number: US-11653978-B2

Title: External fixator deformity correction systems and methods

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is a continuation of U.S. patent application Ser. No. 16/788,364, filed Feb. 12, 2020, which is continuation of U.S. Pat. No. 10,610,304, filed Dec. 19, 2018, which is continuation of U.S. Pat. No. 10,213,261, filed Nov. 14, 2016, which is a continuation of U.S. Pat. No. 9,524,581, filed Feb. 9, 2015, which is a continuation of U.S. Pat. No. 8,952,986, filed Jan. 27, 2014, which is a continuation of U.S. Pat. No. 8,654,150, filed Feb. 4, 2013, which claims the benefit of the filing date of U.S. Provisional Application No. 61/594,519, filed Feb. 3, 2012, all of which are incorporated herein by reference in their entireties. 
    
    
     BACKGROUND 
     The invention relates to systems and methods for correcting bone deformities using external fixators, and in particular to using systems to plan and optimize bone deformity correction treatment with external fixators. 
     Patients with bone deformities suffer from a reduced quality of life: they may suffer from difficulties in standing, walking, or using limbs. Bone deformities can be congenital, or the result of a fracture that did not heal properly. These deformities can include axial, sagittal, or coronal plane deformities, translational or rotational deformities and mal-union or non-union deformities, or, in complex cases, more than one type of deformity. 
     The bone deformities are often treated with surgery. For example, surgeons may use metal implants to improve the geometry of a deformed bone; however, inert metal implants are not as flexible in their ability to reform natural bone in something close to normal anatomical geometry. As an alternative, surgeons may perform an osteotomy—a cut in the bone—and then attach an external fixator to support the growing bone while the bone deformity is corrected. The Taylor Spatial Frame (TSF) is a commonly-used external fixator comprising rings interconnected by struts. After the osteotomy, the surgeon may insert pins through the superior and inferior sections of the bone. These pins are attached to external rings so that one ring is roughly perpendicular to the superior section of the bone, and the other ring is roughly perpendicular to the inferior section of the bone. The surgeon may attach adjustable struts to these rings so that the rings are held together by the struts. Each strut has a predetermined attachment point to each ring. Because the rings are each fixed to a section of bone, and because the rings are now joined by flexible struts, the bones can be moved with six degrees of freedom relative to each other. 
     After the surgery to attach these rings and struts, a surgeon may take orthogonal x-rays of the apparatus on the patient&#39;s leg. The surgeon may make a number of measurements from the x-ray images, including distances and angles of both the tibia and the rings and struts. The surgeon may then use the numerical measurements to calculate the bone correction needed and prescribe for the patient the length of each strut to be adjusted each day. Typically, daily adjustments will be made, realigning the sections of the bone at a rate that allows new bone to form ultimately yielding natural bone in a geometry that comes close to normal anatomy and function. 
     Such calculations are usually time-consuming and usually rely on the assumptions that each ring is perfectly perpendicular to the bone segment to which it is attached. This may require a surgeon to spend extra time in the operating room to assure that each ring is perpendicular to each corresponding bone segment. If a ring is not perpendicular to its corresponding bone segment, error will be entered and the resulting prescription for strut adjustments will not be accurate. 
     This system of two rings and six struts may be chosen for several reasons. First, the system allows a surgeon to move the two bone segments with six degrees of freedom relative to each other, thereby giving the surgeon the freedom to treat many types of deformities. The system may be strong enough to support body weight so that a patient can be ambulatory while healing occurs. 
     The shortcomings of the procedure include the difficulty and lack of accuracy in using a ruler and protractor on an x-ray print-out, or digital system not related to the prescription calculation program, to measure distances and angles, the amount of time involved in performing all the calculations needed to generate the patient prescription, and the surgical difficulty in positioning the external fixator exactly with respect to the patient&#39;s bone. 
     It would thus be desirable to develop a system that would allow easy and accurate measurements of bones and bone deformities, and easily generate accurate prescriptions for strut lengths for the bone correction treatment. 
     SUMMARY 
     According to one aspect, a computer system comprises a microprocessor configured to execute instructions to: generate a first display of an orthopedic treatment device superimposed on a display of a first digital medical image, the display of the first digital medical image displaying a first view of a patient&#39;s anatomical structure, the first display of the orthopedic treatment device being a first graphical representation of a synthetic orthopedic treatment device representing a physical orthopedic treatment device; substantially concurrently with generating the first display of the orthopedic treatment device superimposed on the display of the first digital medical image, generate a second display of the orthopedic treatment device superimposed on a display of a second digital image, the display of the second digital medical image displaying a second view of the patient&#39;s anatomical structure from a different angle than the first view, the second display of the orthopedic treatment device being a second graphical representation of the synthetic orthopedic treatment device; receive user input entered graphically on the first display of the orthopedic treatment device superimposed on the display of the first digital medical image, the user input controlling a motion of the synthetic orthopedic treatment device; and in response to receiving the user input, update the first display of the orthopedic treatment device superimposed on the display of a first digital medical image and the second display of the orthopedic treatment device superimposed on the display of a second digital image to reflect the motion of the synthetic orthopedic treatment device. 
     According to another aspect, a non-transitory computer-readable medium encodes instructions which, when executed by a microprocessor of a computer system, cause the computer system to: generate a first display of an orthopedic treatment device superimposed on a display of a first digital medical image, the display of the first digital medical image displaying a first view of a patient&#39;s anatomical structure, the first display of the orthopedic treatment device being a first graphical representation of a synthetic orthopedic treatment device representing a physical orthopedic treatment device; substantially concurrently with generating the first display of the orthopedic treatment device superimposed on the display of the first digital medical image, generate a second display of the orthopedic treatment device superimposed on a display of a second digital image, the display of the second digital medical image displaying a second view of the patient&#39;s anatomical structure from a different angle than the first view, the second display of the orthopedic treatment device being a second graphical representation of the synthetic orthopedic treatment device; receive user input entered graphically on the first display of the orthopedic treatment device superimposed on the display of the first digital medical image, the user input controlling a motion of the synthetic orthopedic treatment device; and in response to receiving the user input, update the first display of the orthopedic treatment device superimposed on the display of a first digital medical image and the second display of the orthopedic treatment device superimposed on the display of a second digital image to reflect the motion of the synthetic orthopedic treatment device. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The foregoing aspects and advantages of the present invention will become better understood upon reading the following detailed description and upon reference to the drawings where: 
         FIG.  1    shows a hardware configuration of an exemplary computer system, which may be used to implement at least part of the embodiments of the present invention. 
         FIG.  2    shows multiple computer systems may be interconnected through a wide-area network such as the Internet, suitable for implementing some embodiments of the present invention. 
         FIG.  3    shows screen shot of the “ID, SESSIONS, &amp; IMPORT IMAGES” box, according to some embodiments of the present invention. 
         FIG.  4    shows a screen shot of the graphical user interface of the image drag and drop function of the “ID, SESSIONS, &amp; IMPORT IMAGES” tab, according to some embodiments of the present invention. 
         FIG.  5    shows a screen shot after a first digital medical image has been dropped, according to some embodiments of the present invention. 
         FIG.  6    shows a screen shot of the graphical user interface for defining bone segments using the “PLACE SEGMENTS” tab that defines the number and position of bone segments, according to some embodiments of the present invention. 
         FIG.  7    shows a screen shot where multiple segments have been placed on a digital medical image, according to some embodiments of the present invention. 
         FIG.  8    shows a screen shot where joint lines and bisectors have been set for each segment, according to some embodiments of the present invention. 
         FIG.  9    shows a screen shot where multiple joint lines can be defined for each segment, according to some embodiments of the present invention. 
         FIG.  10    shows a screen shot where segments are on different sides of a joint, according to some embodiments of the present invention. 
         FIGS.  11 A-B  show screen shots that illustrating the concept of rotating for reference, according to some embodiments of the present invention. 
         FIG.  12    shows a screen shot of the “DEFINE RINGS” tab, according to some embodiments of the present invention. 
         FIG.  13    shows a screen shot of the DEFINE RINGS tab where multiple ring-pairs have been defined, according to some embodiments of the present invention. 
         FIGS.  14 A- 14 B  show screen shots of the DEFINE RINGS tab where the user has defined the ring geometry for the top and bottom ring of a ring pair by selecting the type and size of rings being used, according to some embodiments of the present invention. 
         FIG.  15    shows a screen shot of the DEFINE RINGS tab where the user is selecting the attachment point for each strut, according to some embodiments of the present invention. 
         FIG.  16    shows a screen shot of the DEFINE RINGS tab in which the user has chosen to attach the strut to the ring by way of an intermediary piece of hardware, in this case, a ring drop, according to some embodiments of the present invention. 
         FIG.  17    is a schematic drawing showing a top, perspective, front and side views of a ring drop used to attach a strut to the ring, according to some embodiments of the present invention. 
         FIG.  18    shows a screen shot of the “PLACE RINGS” tab, according to some embodiments of the present invention. 
         FIG.  19    shows a screen shot of the PLACE RINGS tab where a ring bisector is drawn on the AP view of the digital medical image, according to some embodiments of the present invention. 
         FIG.  20    shows a screen shot of the PLACE RINGS tab where, after placing four ring bisector axes (AP &amp; lateral, top &amp; bottom), the program places an initial set of rings, according to some embodiments of the present invention. 
         FIG.  21    shows a screen shot of the PLACE RINGS tab of a display of the ring as a single ellipse, according to some embodiments of the present invention. 
         FIG.  22    shows a screen shot of the PLACE RINGS tab where the width and position of the rings are adjusted by manipulating ring axes, according to some embodiments of the present invention. 
         FIG.  23    is a screen shot of the PLACE RINGS tab showing adjustment of the ring “b” or short axis to match the ring position on screen, according to some embodiments of the present invention. 
         FIG.  24    shows a screen shot of the PLACE RINGS tab of a user adjusting the ring rotation, according to some embodiments of the present invention. 
         FIG.  25    is a screen shot of the PLACE RINGS tab of a user adjusting the ring rotation of the lateral view relative to the AP view, according to some embodiments of the present invention. 
         FIG.  26    is a screen shot of the PLACE RINGS tab showing rotations involving multiple ring pairs, according to some embodiments of the present invention. 
         FIGS.  27 A- 27 F  show screen shots of a user highlighting each strut by number to assist with ring identification, according to some embodiments of the present invention. 
         FIG.  28    is a screen shot of the PLACE RINGS tab showing a user entering true strut lengths taken from the actual struts, according to some embodiments of the present invention. 
         FIG.  29    shows a screen shot of the PLACE RINGS tab where user can choose to view the images with or without rotation for reference and/or scaling, according to some embodiments of the present invention. 
         FIG.  30    shows a schematic drawing of various views of a model of a ring marker, according to some embodiments of the present invention. 
         FIG.  31    shows a screen shot of the “TRANSLATE SEGMENTS” tab, according to some embodiments of the present invention. 
         FIG.  32    shows a screen shot of the TRANSLATE SEGMENTS tab where the AP segment is being translated medially, according to some embodiments of the present invention. 
         FIG.  33    is a screen shot of the TRANSLATE SEGMENTS tab showing a user moving the CORAs, according to some embodiments of the present invention. 
         FIG.  34    shows a screen shot of the TRANSLATE SEGMENTS tab where the vertical positions of the CORAs are matched, according to some embodiments of the present invention. 
         FIGS.  35 A- 35 B  show screen shots of multiple segments being translated, according to some embodiments of the present invention. 
         FIG.  36    is a screen shot of the TRANSLATE SEGMENTS tab showing how images may be viewed with or without rotation for reference and/or scaling, according to some embodiments of the present invention. 
         FIGS.  37 A- 37 B  show screen shots of the “SET CORRECTION” tab, according to some embodiments of the present invention. 
         FIG.  38    shows a screen shot of the SET CORRECTION tab where a rate point has been added and can be moved by the user, according to some embodiments of the present invention. 
         FIGS.  39 A- 39 E  show screen shots of the SET CORRECTION tab of corrections shown on day 0, 2, 4, 6, and 8 respectively, according to some embodiments of the present invention. 
         FIG.  40    shows a screen shot of the SET CORRECTION tab where a user is adjusting components of the correction individually, according to some embodiments of the present invention. 
         FIGS.  41 A- 41 C  show screen shots of a two-step correction on days 0, 8, and 28, respectively, according to some embodiments of the present invention. 
         FIGS.  42 A- 42 B  show screen shots of the SET CORRECTION tab where corrections applied to multiple deformity pairs, according to some embodiments of the present invention. 
         FIG.  43    is a screen shot showing a user&#39;s ability to view images with or without rotation for reference and/or scaling, according to some embodiments of the present invention. 
         FIG.  44    shows a screen shot of the “CORRECTION PRESCRIPTION” tab, according to some embodiments of the present invention. 
         FIGS.  45 A-J  illustrate a computer-implemented method, along with its alternative embodiments, to generate a graphical display of a ring superimposed on a digital medical image, according to some embodiments of the present invention. 
         FIGS.  46 A-F  illustrate the method of  FIG.  45 J , further including various aspects involved in bone deformity treatment, according to some embodiments of the present invention. 
         FIGS.  47 A-B  illustrate a tilted ellipse in a 2D (X, Y) plane, according to some embodiments of the present invention. 
         FIG.  47 C  illustrates an example of a ring&#39;s azimuthal rotation, where a fixed point on the ring is defined as an azimuthal rotational reference point, according to some embodiments of the present invention. 
         FIGS.  47 D-E  illustrate two orthogonal planes, XY and ZY, according to some embodiments of the present invention. 
         FIGS.  47 F-G  illustrate the rotation of a segment, to bring it parallel to the Y-axis, according to some embodiments of the present invention. 
         FIGS.  48 A-B  show an exemplary embodiment of an ellipse, with an “a” axis, and an adjustment handle, where the ellipse may be dragged by its “a” axis endpoints, according to some embodiments of the present invention. 
         FIGS.  49 A-B , show one type “axial rotation”, for example a rotation of the display of the ring around the “a” axis is accomplished by changing the length of the “b” axis, according to some embodiments of the present invention. 
         FIGS.  50 A-B  show that changing ϕ need not change the appearance of a ring without azimuthal features (i.e. a plain ring), according to some embodiments of the present invention. 
         FIGS.  51 A-B  show screenshots of a rotation of the top ring around the “a” axis, accomplished by changing the length of the “b” axis, according to some embodiments of the present invention. 
         FIG.  52    illustrates an image rotated for reference, according to some embodiments of the present invention. 
         FIG.  53    shows a screen shot where the Y-axis values of the two center points are equal according to some embodiments of the present invention. 
         FIGS.  54 A-B  illustrate a correction of the parallax effect in the lateral view of an ellipse, according to some embodiments of the present invention. 
         FIGS.  55 - 56    show screen shots illustrating an exaggerated rotation of the top ring, according to some embodiments of the present invention. 
         FIG.  57    shows a screen shot illustrating an example of a rotation of both rings on the lateral image, according to some embodiments of the present invention. 
         FIGS.  58 A-B  show screenshots of the SET CORRECTION tab on days 0 and 1 of a correction, according to some embodiments of the present invention. 
         FIGS.  59 A-F  show screen shots of a manipulation with a rate point on days 0, 2, 4, 6, and 8 of 8, according to some embodiments of the present invention. 
         FIG.  60    shows an exemplary screenshot for high tibial osteotomy correction, according to some embodiments of the present invention. 
     
    
    
     DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS 
     In the following description, it is understood that all recited connections between structures can be direct operative connections or indirect operative connections through intermediary structures. A set of elements includes one or more elements. Any recitation of an element is understood to refer to at least one element. A plurality of elements includes at least two elements. Unless otherwise required, any described method steps need not be necessarily performed in a particular illustrated order. A first element (e.g. data) derived from a second element encompasses a first element equal to the second element, as well as a first element generated by processing the second element and optionally other data. Azimuthal rotation of a ring refers to rotation of the ring about an axis passing through a center of the ring and normal to a major plane of the ring. Axial rotation of a ring refers to a non-azimuthal rotation of the ring, i.e. to a rotation about an axis different from the axis passing through the center of the ring and normal to the major plane of the ring; an axial rotation may be performed about an axis lying in the major plane of the ring, about a point along the ring or tangent to the ring, or about another axis. Making a determination or decision according to a parameter encompasses making the determination or decision according to the parameter and optionally according to other data. Unless otherwise specified, an indicator of some quantity/data may be the quantity/data itself, or an indicator different from the quantity/data itself. Computer programs described in some embodiments of the present invention may be stand-alone software entities or sub-entities (e.g., subroutines, code objects) of other computer programs. Computer readable media encompass non-transitory media such as magnetic, optic, and semiconductor storage media (e.g. hard drives, optical disks, flash memory, DRAM), as well as communications links such as conductive cables and fiber optic links. According to some embodiments, the present invention provides, inter alia, computer systems comprising hardware (e.g. one or more processors and associated memory) programmed to perform the methods described herein, as well as computer-readable media encoding instructions to perform the methods described herein. 
     The following description illustrates embodiments of the invention by way of example and not necessarily by way of limitation. 
     Hardware Environment 
       FIG.  1    shows a hardware configuration of an exemplary computer system  100  which may be used to implement at least part of the embodiments of the present invention. As shown in  FIG.  1   , one or more buses  110  connect a processor (CPU)  120 , memory  130 , input (e.g. mouse, keyboard) and output devices (e.g. display, speakers, haptic/vibration generator)  140 , and storage devices (e.g. hard drive)  150 . Software as described below may run on one or more computer systems such as the one shown in  FIG.  1   . 
     As shown in  FIG.  2   , multiple computer systems  100  may be interconnected through a wide-area network  160  such as the Internet in some embodiments of the present invention. Bone deformity correction software running on one system  100  may be accessible through an interface (e.g. web interface, or application software interface) running on a different system  100 . In some embodiments, some of the steps described below (e.g. diagnostic/X-ray image generation and storage, fixator model computations and storage) may be performed using on a server system  100 , while other steps (e.g. receiving user input, generating graphical representations of fixator rings and struts, etc.) may be performed on a client system  100 . 
     Software running on one or more computer systems  100  is described below with reference to various tabs used to organize the software capabilities. In some embodiments, the software includes image placement, segment placement, ring definition, ring placement, segment translation, correction setting, and correction prescription functions, each accessible and controllable by a user through an associated tab in a graphical user interface. 
     Place Image (ID, Sessions and Import Images) Tab 
     In some embodiments, a patient record for the bone deformity correction treatment program is created by a user using a graphical user interface.  FIG.  3    shows a screen shot of an introductory “ID, SESSIONS, &amp; IMPORT IMAGES” input section  200 , which allows a user to enter data for a patient information record that can be saved. Introductory input section  200  includes data entry fields for a number of patient identifiers such as a patient name field  202 , a medical record number or ID field  204 , and a deformity type field. In some embodiments, multiple days&#39; worth of information and calculations for the same patient may be saved. For example, preoperative templating, intraoperative images, and a number of postoperative images on different days can be saved. 
     In some embodiments, the system also allows the user to save/store multiple images and correction calculations for the same patient and to update the correction in real-time during the correction period, rather than waiting for the end of a correction prescription, described below. Real-time updating facilitates arriving at a desired outcome in a shorter time by error correcting during, rather than after, the user input process. 
     As shown in  FIG.  3   , once the patient record has been created, a user of the system can enter data identified by each of multiple tabs placed on the top side of the screen: “ID, SESSIONS, &amp; IMPORT IMAGES”  200 , “PLACE SEGMENTS”  300 , “DEFINE RINGS”  400 , “PLACE RINGS”  500 , “TRANSLATE SEGMENTS”  600 , “SET CORRECTION”  700 , and “CORRECTION PRESCRIPTION”  800 . 
       FIG.  4    shows a screen shot of the graphical user interface of an image drag and drop function of the “ID, SESSIONS, &amp; IMPORT IMAGES” tab  200 . This tab allows drag and drop placement of two digital medical images onto the editing screen. In some embodiments, the system&#39;s graphical display comprises at least two digital medical images, each image displaying a view from a different angle of a patient&#39;s anatomical structure. Customarily, a healthcare professional will take two radiographs of the patient&#39;s anatomical structure, e.g. a bone with deformities. The radiographs of the patient&#39;s anatomical structure may show either simply the bone with deformities in isolation, or the bone with deformities following osteotomy in conjunction with an external fixator (with rings and struts) affixed to the bone. Generally one image is anterior-posterior (AP, or XY plane), while the other image, 90 degrees rotated relative to the first, is medial-lateral (lateral, ZY plane). Two radiographs of the patient&#39;s anatomical structure may be turned into digital medical images and imported into the system. Note that the XY and ZY planes need not be perfectly orthogonal in real 3D space if the two radiographs are not perfectly orthogonal. Below, the term XYZ space refers to the real 3D space while the XY and ZY planes respectively refer to the AP and lateral image planes as determined by the angle of the radiographs as they are taken relative the patient&#39;s anatomic structure. 
     As shown in  FIG.  4   , prompts  210 ,  220  on the editing screen direct the user to place the digital medical images. A graphic associated with prompts  210 ,  220  indicates a side (e.g. left side in  FIG.  4   ) that is currently selected for editing. In some embodiments, the two digital medical images do not have to be truly orthogonal; the system may be designed to be able to compensate for different rotation angles and correct rotational deficiencies as described below, to correct for any departure from orthogonality for the orientation of the two images. 
       FIG.  5    shows a screen shot after a first digital medical image  230  has been dropped in the space defined by the prompt  210  shown in  FIG.  4   . Once the digital medical image is placed in its designated location, prompts for the expected orientation of the image are displayed on the left side of the screen: image manipulation tools on the left side of the screen include a flipping tool  240 , a rotation tool  250 , and a cropping tool  260 , to optimize the representation of the image used. 
     Place (Set) Segments Tab 
     The imported digital medical images may be used to designate the position of the patient&#39;s bones to the system.  FIG.  6    shows a screen shot of a graphical user interface for defining bone segments using the “PLACE SEGMENTS” (segment-placing) tab  300 , which allows defining a number (count) and associated positions of bone segments. Segment-placing tab  300  is used to define locations/representations  306 ,  306 ′ of a bone or a portion of bone, as well as the number and position of bone segments  310 ,  310 ′. As shown in  FIG.  6   , segments  306 ,  306 ′ are defined by a user by drawing lines down the middle of corresponding bone representations. The system determines the appropriate locations of segments  306 ,  306 ′ by detecting the locations of corresponding graphical user input (e.g. mouse clicks at the end points of segments  306 ,  306 ′). Corresponding segments on the AP and lateral views are color-coded to match labels associated with each view in the left image tab. Segments can be dragged by endpoints  320 ,  320 ′ or by selecting an internal point along the line representing a bone. 
     CORA locations  340 ,  340 ′ are automatically drawn and color-coded with both colors of the segments involved. CORA or center of rotational angulation is a well-defined term in deformity analysis and refers to the point around which a segment can be rotated to bring it into alignment with another segment. In the simplest form, it is the intersection of the two segments. A section  330  on the left side of the screen allows selecting a reference segment in each image; a reference segment is one whose location stays constant throughout the analysis described below, and ideally is perpendicular to the X-ray beam. Non-reference segments may be termed moving segments. 
     As shown in  FIGS.  7 - 8   , in some embodiments joint line(s) and segment bisector(s) can be placed by a user so as to help facilitate the accurate placement of segments. Segments typically intersect joint lines at defined positions and angles, as well as the midpoint of a diaphyseal bone bisector. These anatomic relationships are used by fixing the segment to the appropriate joint line or bisector point(s). Joint lines are fixed at the closest segment end-point, while segments are fixed to bisectors using a best-fit linear regression equation. 
       FIG.  7    shows a screen shot illustrating the placement by a user of multiple segments  310  on a digital medical image  230  according to some embodiments of the present invention. A pair of angles  350 , between adjacent segments, characterize the size of the deformity to be corrected. The user may place segments  310  using a mouse or other input device, and the system&#39;s determination of the locations of segments  310  may include determining the positions of user actions that identify the endpoints of segments  310  (e.g. mouse clicks at the appropriate positions). 
       FIG.  8    shows a screen illustrating a user&#39;s setting of joint lines  360  and bisectors  362  for each segment  310 ,  310 ′ on two digital medical images  230 ,  230 ′. Joint lines  360  help facilitate placement of segments  310 ,  310 ′ by fixing each segment  310 ,  310 ′ to the correct anatomic point on the corresponding joint line  360 . Joint lines  360  also help demonstrate if there is a deformity close to the joint by measuring the joint line angle. Bisectors  362  are drawn by a user between boundaries of a bone&#39;s diaphysis  366  (cylindrical portion) anywhere along the bone. A segment  310  should fall on the midpoints of these bisectors and is calculated as a best-fit line between these points. Advantageously, linear regression may be used to define bisector best fit and generate a display of bisector closeness of fit (“R value”). The user can choose to lock or unlock the segment to the joint line(s) and/or bisector(s)  364  using on screen commands. 
     Joint lines  360  can be named based on their anatomic location, to help the system understand the relationship between segments based on anatomic location, for instance, to pre-define if a CORA should be set. Naming also allows the program to set the appropriate location on the joint line where the segment should intersect based on anatomic norms. The angle between the segment and associated joint line is displayed, and the “R” value for goodness of fit for multiple bisectors is displayed. 
     As noted above, CORA or center of rotational angulation is a well-defined term in deformity analysis and refers to the point around which a segment can be rotated to bring it into alignment with another segment. In the simplest form, it is the intersection of the two segments. In some embodiments, the CORA for each segment pair is automatically calculated and placed on-screen. The angular difference between adjacent segments (angular deformity) is calculated and displayed. If it&#39;s inappropriate to have a CORA between segments, such as between the distal femur and proximal tibia at the knee, the CORA can be turned off. In this circumstance, if joint lines are set at these intersections, a joint angle is calculated and displayed. Defining the names of joint lines can help the program to know if it should set a CORA active or inactive based on anatomic relationships. 
     For example, long leg hip to ankle digital medical images can be analyzed in real time to assist with calculation of high tibial osteotomy correction. This starts with the definition of the femur and tibia segments and the proximal tibia joint line as defined above. Next the user can define the goal location for lower extremity mechanical axis after correction as a real time moving point along the tibial joint line with percentage of total joint line length calculated and displayed. Finally, the user can select an osteotomy location for opening or closing wedge osteotomy and the program will calculate the size of the wedge to be inserted or removed.  FIG.  60    shows an exemplary screenshot for high tibial osteotomy correction  1300 . 
     Long leg hip to ankle digital medical images can be analyzed in real time to assist with calculation of distal femoral osteotomy correction (not shown). This starts with the definition of the femur and tibia segments and the distal femur joint line as defined above. Next the user can define the goal location for lower extremity mechanical axis after correction as a real time moving point along the femoral joint line with percentage of total joint line length calculated and displayed. Finally, the user can select an osteotomy location for opening or closing wedge osteotomy and the program will calculate the size of the wedge to be inserted or removed. 
       FIG.  9    shows a screen shot illustrating a user&#39;s defining multiple joint lines  360 , for each segment  310 . If a segment comprises an entire bone, it may be more appropriate to have a joint line at each the end of the segment. The system also displays population norms  368  for joint line to segment angles. It highlights when joint line to segment angles are not within anatomic norms to draw attention to the user that a deformity exists close to the joint. 
       FIG.  10    shows a screen shot where segments  310  are on different sides of a joint  308 , the concept of CORA is not valid, so the CORA can be turned off, shown at  369 . If joint lines  360  are defined for these segments on each side of a joint, a joint angle is calculated. The joint angle measures the congruency of reduction of the joint (i.e., it should be close to 0°). 
     A first level of error correction may be done at this point. In real life two segments represent the same anatomic structure, and this knowledge can be used to perform a first step in error correction. We call this rotating for reference. The x-ray beam should be perpendicular to a reference segment when images are taken. A reference segment is predefined by the user and stays constant throughout the correction analysis. As previously stated, moving segments are segments that are not the reference segment. 
       FIGS.  11 A-B  show screen shots illustrating the concept of rotating for reference. In  FIG.  11 A , the reference segment has been set to segment  1 , shown at  370 ,  370 ′. Changing to segment  2 , shown at  372 ,  372 ′ as in  FIG.  11 A , rotates the images so segment  2  is parallel and vertical in both AP and lateral plane images. Finally, the visual rotation of the image can be turned on (shown at  380  in  FIG.  11 A ) or off (shown at  382  in  FIG.  11 B ). The visual rotation can be turned on or off by the user, though behind the scenes, the program continues to correct for the rotation for reference. 
     Define Rings Tab 
     In some embodiments, once the location of the segments has been finalized, the next step involves graphically representing the external fixator superimposed on a graphical display of at least one digital medical image. An external fixator comprises at least two rings interconnected by a plurality of struts. The system uses a tiltable ellipse to represent a ring of an external fixator attachable to the patient&#39;s anatomical structure, in this case a patient&#39;s bone(s). In one embodiment the system may receive ring identification user input identifying at least two points defining the tiltable ellipse. The digital medical image may show an external fixator, which may appear as already attached the patient&#39;s bone. In such an embodiment, a user may manipulate a synthetic fixator representation to match the position of the real fixator in the digital medical image, in order to determine the 3D position of the real fixator from the screen position(s) of the synthetic fixator elements. In an alternative embodiment, the digital medical image may show only the patient&#39;s bone(s). In such an embodiment, a synthetic fixator representation may be superimposed on the digital medical image to represent a desired/simulated positioning of a potential real fixator. In some embodiments, a display of a tiltable ellipse superimposed on a graphical display of at least one digital medical image, in this case a patient&#39;s radiograph that has been digitized, is generated using user-controllable DEFINE RINGS and PLACE RINGS tabs, as described below. 
       FIG.  12    shows a screen shot of a “DEFINE RINGS” tab  400 . The user of the system starts by entering the type and size of ring information for each ring-pair. A graphical user interface may be used as well to click on a schematic of a ring to define where the struts are attached. In one embodiment, the brand and model of each ring may be entered, and preexisting ring/strut size information retrieved according to the entered brand and model. 
       FIG.  13    shows a screen shot of a DEFINE RINGS tab  400  where multiple ring-pairs  410  have been defined. In this case, the user selects which ring pair they are currently defining. A check box  412  reminds the user if a ring-pair has been defined.  FIGS.  14 A- 14 B  show screen shots of the DEFINE RINGS tab  400  where the user has defined the ring geometry for the top and bottom ring of a ring pair by selecting the type  414  and size  416  of rings being used. 
     After the system generates the graphical representation of the ring(s), e.g. the ellipse, strut attachment points may be selected by a user.  FIG.  15    shows a screen shot of the DEFINE RINGS tab  400  where the user is selecting an attachment point  418  for each strut. The user has the flexibility to use any ring holes  420  to attach the ring to the bone, and still be able to attach a strut to the ring and make the calculations described below. In some embodiments, by selecting an attachment point for each strut, the user may define a strut angle and strut radius. 
       FIG.  16    shows a screen shot of a DEFINE RINGS tab  400  in which the user has chosen to attach a strut to the ring by way of an intermediary piece of hardware, in this case, a ring drop  426 . Using the ring drop  426  allows dropping the strut for a predefined distance from the ring. It allows the user to move struts out of the way of other hardware to prevent the struts hitting fixed structures as the rings/struts move during correction. The length of ring drop  426  defines the strut drop length  428 . 
       FIG.  17    is a schematic drawing showing a top, perspective, front and side views of a ring extender  426  used to attach a strut to a ring according to some embodiments of the present invention. This separate hardware allows the user to attach the strut to a ring at any point on the ring by extending the strut radius from a given ring position, and could have a built-in ring drop as well. Variations in the products could alter the strut angle as well. 
     Place Rings Tab 
     Although a ring-pair is commonly a set of two rings connected by six struts that connect two segments, other alternative ring and strut combinations may also be used. The ring-pair enables one segment to be moved relative to another to facilitate a correction. By changing the length of each strut according to a prescription calculated in the following tabs, the rings can be manipulated in space and the corresponding segments manipulated in the patient. To make these calculations, the program uses its knowledge of the 3D shape of the ring. The calculations described below are generally applicable to any ring, or really any shaped structure. Such calculations may rely on three-dimensional measurements of ring/structure sizes pre-entered into the program&#39;s database. The user chooses the ring type and size to let the program know which ring data to use for its calculations. 
       FIG.  18    shows a screen shot of a “PLACE RINGS” tab  500  that allows the user to define the location of the external fixator ring(s) relative to surrounding anatomic structures; the ring pair being placed is chosen from a drop-down menu  510 . 
     In some embodiments, a user begins by drawing a ring bisector for each ring.  FIG.  19    shows a screen shot of the PLACE RINGS tab  500  where a ring bisector  512  is drawn on the AP view of the digital medical image  230 . The ring bisector is constant despite changes in x-ray beam position and therefore allows for accurate ring position definition. The program then uses an ellipse to represent the graphical display of the ring on the AP and lateral digital medical images. The ellipse is represented by a center, an “a” or long axis length, a “b” or short axis length, and a slope. The center, “a” axis length, and slope are set by drawing the ring bisector. 
     In some embodiments, a tilted ellipse representing a ring is generated using a set of mathematical formulas described below.  FIGS.  47 A-B  illustrate a tilted ellipse  1100  in a 2D (X,Y) plane, where the X-axis  1102  is shown perpendicular to the Y-axis  1104 . The two axes of the ellipse are represented by the “long” axis of length 2*a  1106  referred to as “a” axis and the “short” axis of length 2*b  1108  referred to as “b” axis. An angle θ, shown at  1110 , represents the angle between the “a” axis  1106  and the X-axis  1102 . When θ=0 the ellipse&#39;s “a” axis is parallel to X-axis and the “b” axis is parallel to Y-axis. Each point in this 2D plane is represented by a pair of numbers; they are the coordinates of the point. Significant points on the ellipse include: the center of the ellipse with coordinates (x c  y c )  1112 ; a point on the ellipse with coordinates (x(n), y(n))  1114  (where “n” is an angle, expressed in radians, ranging from 0 to 2π); the points (x 0 , y 0 )  1116  and (x 1 , y 1 )  1118  are the endpoints of the “a” axis (the “long” axis). 
     The x and y coordinates of a point on a tilted ellipse in a 2D plane may be expressed as: 
     
       
         
           
             
               
                 
                   
                     x 
                     ⁡ 
                     
                       ( 
                       n 
                       ) 
                     
                   
                   = 
                   
                     
                       x 
                       c 
                     
                     + 
                     
                       
                         a 
                         · 
                         cos 
                       
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       
                         n 
                         · 
                         cos 
                       
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       θ 
                     
                     - 
                     
                       
                         b 
                         · 
                         sin 
                       
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       
                         n 
                         · 
                         sin 
                       
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       θ 
                     
                   
                 
               
               
                 
                   ( 
                   1 
                   ) 
                 
               
             
             
               
                 
                   
                     y 
                     ⁡ 
                     
                       ( 
                       n 
                       ) 
                     
                   
                   = 
                   
                     
                       y 
                       c 
                     
                     + 
                     
                       
                         a 
                         · 
                         cos 
                       
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       
                         n 
                         · 
                         sin 
                       
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       θ 
                     
                     + 
                     
                       
                         b 
                         · 
                         sin 
                       
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       
                         n 
                         · 
                         cos 
                       
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       θ 
                     
                   
                 
               
               
                 
                   ( 
                   2 
                   ) 
                 
               
             
           
         
       
     
     The coordinates (x(n), y(n))  1114  of a point on the ellipse may be calculated as functions of the following parameters: the center of the ellipse (x c  y c )  1112 , the values of “a”  1106  and “b”  1108 , the angle n  1118  and the angle θ  1110 . The ellipse may be translated by adding/subtracting horizontal and vertical translation extents to the center coordinates (x c  y c ). Rotational transformations are described in detail below. 
       FIG.  20    shows a screen shot of the PLACE RINGS tab  500  where, after placing four ring bisector axes  512  (AP &amp; lateral, top &amp; bottom), the program places an initial set of rings. At this stage, the program can also scale the images, segments, and rings relative to each other, as shown at  516 . The rings  514  are displayed as double ellipses  520  showing the true height of the ring.  FIG.  21    shows a screen shot of the PLACE RINGS tab  500  of a display of the ring as a single ellipse  522 . 
     In some embodiments, once the top and bottom ring centers are defined in both the AP and lateral planes, the image, segments, and ring parameters can be scaled. Scaling corrects for differences in the ratio of distance from the x-ray source to anatomic structure and distance from anatomic structure to x-ray plate. This ratio will magnify or shrink the AP view relative to the lateral view. Calculating the scale factor for the AP and lateral planes corrects for this magnification. Scaling can be based on any structure that is known to be the same on the AP and lateral views. These include the distance between joint line centers of the same bone segment (when defined) or ring centers (when defined). Alternatively, size markers included when the digital medical image was taken may be used by the program to determine magnification and scaling. 
     The “b” axis length may be defined as a ring spread. The ideal or expected ring spread is the spread that would be seen if the x-ray source were an infinite number of parallel beams. However, x-rays are sources are point based, which causes parallax in the ring projection based on where the point source is relative to the ring. This makes the ring spread bigger or smaller even though the actual ring position hasn&#39;t changed. 
     In some embodiments, a user is able manipulate the spread to match what is seen on the screen (view ring spread). The user may need to adjust the ring bisector as the view ring spread is set. This is a form of error correction for x-ray beam position. 
       FIG.  22    shows a screen shot of a PLACE RINGS tab  500  where the width and position of the rings  514  are adjusted by manipulating ring axes  512 . This is done by manipulating handles  524  on the ring bisector axes  512  or by separate controls. 
       FIG.  23    is a screen shot of a PLACE RINGS tab  500  showing adjustment of the ring “b” or short axis  526 ′ to match the ring position on screen. This can be done by manipulating handles  524 ′ on the ring bisector  512 ′ or by separate controls. 
     In some embodiments, as illustrated in  FIG.  47 B , the movement of the endpoints (x 0 , y 0 )  1116  and (x 1 , y 1 )  1118  of the “a” axis adjusts (x c , y c )  1108 , θ (not shown), and the “a” axis  1106  length as follows: 
     
       
         
           
             
               
                 
                   
                     x 
                     c 
                   
                   = 
                   
                     
                       ( 
                       
                         
                           x 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           0 
                         
                         + 
                         
                           x 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           1 
                         
                       
                       ) 
                     
                     ⁢ 
                     
                       / 
                     
                     ⁢ 
                     2 
                   
                 
               
               
                 
                   ( 
                   3 
                   ) 
                 
               
             
             
               
                 
                   
                     y 
                     c 
                   
                   = 
                   
                     
                       ( 
                       
                         
                           y 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           0 
                         
                         + 
                         
                           y 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           1 
                         
                       
                       ) 
                     
                     ⁢ 
                     
                       / 
                     
                     ⁢ 
                     2 
                   
                 
               
               
                 
                   ( 
                   4 
                   ) 
                 
               
             
             
               
                 
                   a 
                   = 
                   
                     
                       sqrt 
                       ⁡ 
                       
                         ( 
                         
                           
                             
                               
                                 ( 
                                 
                                   
                                     x 
                                     ⁢ 
                                     
                                         
                                     
                                     ⁢ 
                                     1 
                                   
                                   - 
                                   
                                     x 
                                     ⁢ 
                                     
                                         
                                     
                                     ⁢ 
                                     0 
                                   
                                 
                                 ) 
                               
                               ⋀ 
                             
                             ⁢ 
                             2 
                           
                           + 
                           
                             
                               
                                 ( 
                                 
                                   
                                     y 
                                     ⁢ 
                                     
                                         
                                     
                                     ⁢ 
                                     1 
                                   
                                   - 
                                   
                                     y 
                                     ⁢ 
                                     
                                         
                                     
                                     ⁢ 
                                     0 
                                   
                                 
                                 ) 
                               
                               ⋀ 
                             
                             ⁢ 
                             2 
                           
                         
                         ) 
                       
                     
                     ⁢ 
                     
                       / 
                     
                     ⁢ 
                     2 
                   
                 
               
               
                 
                   ( 
                   5 
                   ) 
                 
               
             
             
               
                 
                   θ 
                   = 
                   
                     tan 
                     - 
                     
                       1 
                       ⁢ 
                       
                         ( 
                         
                           
                             ( 
                             
                               
                                 y 
                                 ⁢ 
                                 
                                     
                                 
                                 ⁢ 
                                 1 
                               
                               - 
                               
                                 y 
                                 ⁢ 
                                 
                                     
                                 
                                 ⁢ 
                                 0 
                               
                             
                             ) 
                           
                           ⁢ 
                           
                             / 
                           
                           ⁢ 
                           
                             ( 
                             
                               
                                 x 
                                 ⁢ 
                                 
                                     
                                 
                                 ⁢ 
                                 1 
                               
                               - 
                               
                                 x 
                                 ⁢ 
                                 
                                     
                                 
                                 ⁢ 
                                 0 
                               
                             
                             ) 
                           
                         
                         ) 
                       
                     
                   
                 
               
               
                 
                   ( 
                   6 
                   ) 
                 
               
             
           
         
       
     
       FIG.  48 A  shows an exemplary embodiment of an ellipse  1100 , with an “a” axis  1106 , and an adjustment handle  1200 . As shown in  FIG.  48 B , the ellipse  1100  may be dragged by its “a” axis endpoints  1116 ,  1118 . 
     Once a ring has been defined, in the PLACE RING tab the system receives ring rotation user input controlling an axial rotation and an azimuthal rotation of the graphical representation of the ring superimposed on the at least one digital medical image. In some embodiments, a user can control the axial and azimuthal rotations of each of two rings (top &amp; bottom) individually. Individual ring rotation capabilities account for the possibility that a ring may be fixed to a bone segment in a rotated position (ring mounting rotation), either volitionally or because of error inherent in the mounting procedure. 
       FIG.  24    shows a screen shot of a PLACE RINGS tab  500 , illustrating a user&#39;s adjusting a ring rotation, as marked by the arrows  528 . First the orientations of the top and bottom rings  514  are adjusted relative to the segment  310 . This is best done by comparing the strut position  530  of the AP view  230 . Both the AP and lateral views rings change as the ring rotation is manipulated here (compare with  FIG.  23   ). A user can rotate a ring by manipulating handles  524  on the ring bisector  512 , on the ring itself, or by separate controls. 
     In some embodiments, as shown in  FIGS.  49 A-B , one type of “axial rotation”, for example a rotation of the display of the ring around the “a” axis  1106  is accomplished by changing the length of the “b” axis  1108 . In some embodiments, a user drags an adjustment handle  1200  ( FIG.  49 B ) up &amp; down to increase or decrease the “b” axis length (which reflects an axial rotation of the corresponding ring 3D position).  FIGS.  51 A-B  illustrate examples of ring rotations showing rotational reference  1120  in two different locations, but where the ring  1100  looks the same. 
     “Azimuthal rotation” of a 3D ring is rotation of the ring around an axis through its center point and perpendicular to a plane defined by the ring. As shown in  FIG.  47 C , to keep track of a ring&#39;s azimuthal rotation, a separate angular measure is maintained, the azimuthal ring rotation, or ϕ, shown at  1120 , and a fixed point on the ring is defined as an azimuthal rotational reference point (x ref , y ref )  1122 . 
       FIGS.  50 A-B  show that changing ϕ need not change the appearance of a ring  1000  without azimuthal features (i.e. a plain ring). However, azimuthal rotation will move a rotational reference point  1210  around the ring. The x and y coordinates of a given point on the ring may be expressed, relative to the reference point, as: 
     
       
         
           
             
               
                 
                   
                     x 
                     ⁡ 
                     
                       ( 
                       n 
                       ) 
                     
                   
                   = 
                   
                     
                       x 
                       c 
                     
                     + 
                     
                       
                         a 
                         · 
                         cos 
                       
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       
                         
                           ( 
                           
                             n 
                             - 
                             ∅ 
                           
                           ) 
                         
                         · 
                         cos 
                       
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       θ 
                     
                     - 
                     
                       
                         b 
                         · 
                         sin 
                       
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       
                         
                           ( 
                           
                             n 
                             - 
                             ∅ 
                           
                           ) 
                         
                         · 
                         sin 
                       
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       θ 
                     
                   
                 
               
               
                 
                   ( 
                   7 
                   ) 
                 
               
             
             
               
                 
                   
                     y 
                     ⁡ 
                     
                       ( 
                       n 
                       ) 
                     
                   
                   = 
                   
                     
                       y 
                       c 
                     
                     + 
                     
                       
                         a 
                         · 
                         cos 
                       
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       
                         
                           ( 
                           
                             n 
                             - 
                             ∅ 
                           
                           ) 
                         
                         · 
                         sin 
                       
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       θ 
                     
                     + 
                     
                       
                         b 
                         · 
                         sin 
                       
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       
                         
                           ( 
                           
                             n 
                             - 
                             ∅ 
                           
                           ) 
                         
                         · 
                         cos 
                       
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       θ 
                     
                   
                 
               
               
                 
                   ( 
                   8 
                   ) 
                 
               
             
           
         
       
     
     Known points on the ring, such as strut fixation points, can be defined by their azimuthal rotation relative to the rotation reference point. Strut position user input may identify 3D positions for the plurality of struts on the external fixator. For example, to find a point at 0.1 radians along the ring relative to the rotation reference point, the value n=0.1 is entered into the equations above. Once strut position user input has identified the 3D position of each strut of the external fixator has been identified, then the ring rotation user input may control an axial rotation and an azimuthal rotation of a graphical representation of the plurality of struts superimposed on the digital medical image. 
     In some embodiments the system receives ring rotation user input controlling the axial rotation and the azimuthal rotation of the graphical representation of the ring superimposed on a first digital medical image of the at least two digital medical images according to ring rotation user input entered along a second digital medical image of the at least two digital medical images. In some embodiments, rotation of two rings (top &amp; bottom) is corrected concurrently in either the AP or lateral x-ray view. Such concurrent rotation accounts for errors introduced if the anatomic segments are rotated relative to the true AP and lateral planes when x-rays are taken (ring x-ray rotation). The user may adjust the ring bisector as the ring x-ray rotation is set, as a form of error correction for x-ray beam position. 
       FIG.  25    is a screen shot of a PLACE RINGS tab  500  illustrating a user&#39;s adjusting the ring rotation of a lateral view  230 ′ relative to an AP view  230 . The rotation can be understood by comparing the strut positions  530 ′ in the lateral view  230 ′. Both the top and bottom rings  514 ′ of the lateral image change as the ring rotation is manipulated. The ring can be rotated by a user by manipulating handles  524 ′ on the ring bisector  512 ′, on the ring itself  514 ′, or by separate controls. 
     In some embodiments, changing the azimuthal rotation of a ring in one plane can be used to set azimuthal rotation of a ring in another plane. For example, when rotating a ring in the XY plane, a similar rotation can be made on the corresponding ring in the ZY plane. This has the effect of rotating the “true” ring relative to the anatomic structure in both the XY and ZY planes.  FIGS.  55 - 56    show screen shots illustrating an exaggerated rotation of the top ring  514 . Notice the change in position of the struts  530 . 
     Changing the azimuthal rotation of a ring in one plane can also be used to set the azimuthal rotation of another ring in the same plane. Such coupled rotations can serve two purposes. First, coupled rotation can allow the “linking” of two rings. In practice, two or more separate pairs of rings and struts can be applied to anatomic structures on the same body part, and the bottom ring of one ring pair can be physically attached to the top ring of another ring pair. These “linked” rings can be rotated together such that when the azimuthal rotation of one ring is changed, the azimuthal rotation of the “linked” ring is also changed. 
     Second, the azimuthal rotation of a ring in one plane setting the azimuthal rotation of another ring in the same plane can be used to adjust for error introduced by the plane not being orthogonal to a reference plane when radiographs are taken. When initially set, the azimuthal rotation of the second plane is set 90° to the first assuming that the two planes are orthogonal. By rotating both rings of a ring pair in the second plane, the user sets the azimuthal rotation of both rings as if the azimuthal rotation the second plane was not taken orthogonal to the first plane.  FIG.  57    shows a screen shot illustrating an example of a rotation of both rings  514 ′ on the lateral image  230 ′, as compared to  FIG.  56   . 
     After desired ring parameters are defined by the user (e.g. ring bisector, view ring spread, ring mounting rotation, ring x-ray rotation), in some embodiments a number of calculations are made to minimize error in the ring definition process. 
     In some embodiments, a first calculation generates an averaged ring. If a ring is a circle in 3D, the bisector (a measure of the circle&#39;s diameter) should be the same on AP and lateral views. To minimize variation in the user entered ring parameters, the ring “a” axis lengths may be averaged between AP and lateral views. 
     A second calculation generates an expected ring spread. The expected ring spread is the ring spread that would occur if the x-ray beam were “ideal”, that is if it were an infinite number of parallel beams rather than a point based beam source. The expected ring spread may be calculated from the ring bisector of the opposite radiographic image. 
     A third calculation generates a corrected, rotated ring. Such a ring rotation corrects the ring parameters and segment position for variation in ring x-ray rotation from true orthogonal planes. The ring bisector and expected ring spread may be recalculated for the already averaged ring parameters. The segment angulation may also be corrected since the true deformity size will be different if the x-ray image planes are not orthogonal. 
     A fourth calculation sets the ring in the AP and lateral views. In some embodiments, the ring may be represented as a single ellipse based on the ring view parameters above, or a double ellipse using the additional knowledge of ring thickness set when the user chooses a ring during ring definition. 
     A fifth calculation defines a number of strut points. The system receives strut position user input identifying 3D positions for the plurality of struts of the external fixator on the at least one digital medical image. Once strut position user input has identified the 3D position of each strut of the external fixator, then the ring rotation user input may control an axial rotation and an azimuthal rotation of a graphical representation of the plurality of struts superimposed on the digital medical image. Strut positions relative to the ring position may have been defined prior to controlling the ring rotations. Once the true 3D ring position in space has been calculated, strut end points in space may be calculated from the known strut angle on the ring, strut radius, and strut drop distance. The ring plane (the 3D plane in which the ring lies) is calculated, and may be represented as a bisector to the ring plane and the position of the master point on the plane. The strut positions in space are calculated in the ring plane using the strut angle and strut radius by a simple polar coordinate calculation. The drop strut position is calculated by moving the ring plane up or down along the plane bisector. The strut positions in the AP and lateral views as well as positions that describe the “look” of an actual strut (strut view points) are also calculated in a similar fashion. 
     A sixth calculation generates a strut distance in pixels for each strut, which may be simply a three dimensional distance between points. 
     A seventh calculation generates a pixel scale factor (mm/pixel), which converts a distance in scaled pixels to a distance in millimeters. A pixel scale factor can be calculated from the known ring diameter (mm)÷averaged ring bisector “a” length (pixels), the average of the true strut lengths (mm)÷strut distance in pixels (pixels), or from a known size marker on the original radiograph. The true strut lengths may be entered by the user as read from the actual hardware. 
     An eighth calculation generates a strut scale factor (unitless) for each individual strut. This is the true strut length (mm)÷(strut distance in pixels (pixels)*pixel scale factor) for each individual strut. The strut scale factor can be used in a final correction for each strut, to correct for any remaining error involved with the definition of ring positions or x-ray beam position. For example, this type of error may occur if the x-ray beam is not orthogonal to the reference segment. The strut scale factor ensures that the initial strut lengths calculated in the correction tab will match the initial true strut lengths. 
     In some embodiments, the user can template a ring pair by placing a theoretical ring pair on an image. Strut change minimization calculations can be made to show the user the ideal ring placement to minimize the number of strut changes (strut replacements) that are needed during a correction. 
     In some embodiments, special hardware is used to facilitate proper identification of ring positioning using digital imaging. A wide variety of shapes may be used with the common purpose of marking a spot on the external fixator ring that is easily identifiable on both the AP and lateral images. Such marking facilitates setting of proper view ring spread, ring mounting rotation, and ring x-ray rotation. 
     In some embodiments, having received axial and azimuthal rotation user input, the system calculates a 3D-position of each ring of the external fixator relative to the anatomic structure on each of the at least two digital medical images according to the ring rotation user input. The first step in determining a 3D ring&#39;s position based on the ring&#39;s projection in two planes is to rotate the (graphics in the) two planes so their Y-axes are parallel. During the act of shooting a radiograph, a rotational artifact can be introduced when changing between imaging planes. To correct for this artifact, the images may be rotated based on the user&#39;s definition of a reference bone segment on the image in each plane. 
     An actual ring in 3D is represented as corresponding ellipses in 2-D planes.  FIGS.  47 D-E  illustrate two orthogonal planes, XY and ZY. In practice these planes do not have to be perfectly orthogonal. These two planes share a common Y-axis  1104 .  FIG.  47 D  shows the YX plane, with X-axis  1102 , ellipse center (x c , Y c,y )  1128 , ellipse endpoints (x 0,xy , Y 0, xy )  1130  and (x 1, xy ,Y 1, xy )  1132 , and short axis b xy    1134 .  FIG.  47 E  shows the ZY plane with Z-axis  1116 , ellipse center (z c , Y c,zy )  1118 , ellipse endpoints on the long axis (z 0,zy , Y 0,zy )  1140  and (z 1,zy ,Y 1,zy )  1142 , and short axis b zy    1144 . 
     At the time of shooting the radiograph, the reference bone segment is the segment perpendicular to the x-ray beams. Since the reference bone segments represent the same straight line in each plane, rotating each image so the reference bone segment is parallel to the Y-axis, and parallel to each other, removes any artifact introduced by rotation of the radiograph.  FIG.  52    illustrates an image rotated for reference.  FIGS.  47 F-G  illustrate the rotation of a segment  1148 , to bring it parallel to the Y-axis  1104 . 
     In some embodiments, the AP and lateral images are scaled relative to each other and translated along the Y-axis to match corresponding anatomic structures. During the act of shooting a radiograph, a scaling artifact can be introduced based on the distance from the x-ray source to the anatomic segment, and the distance from the anatomic segment to the x-ray cassette (or digital collector). To correct for this artifact, each subsequent image is scaled relative to the first.  FIGS.  52 - 53    show screen shot of a lateral image  230 ′ that has been scaled, as shown in  FIG.  53   . A scaling factor can be determined from the imaged size of objects of known real size (e.g. length). A number of structures of known size present on each image may be used to generate a scaling factor, including: the length of a single ring&#39;s “a” axis, the distance between the center points of two rings&#39; “a” axes, the distance between the center points of two joint-lines; or the length of a sizing marker of known length present on the images. 
     Matching each image&#39;s Y axis set point (y set ) may be achieved by identifying a point on each image that represents the same structure A number of identifiable structures present on each image can be used for y-axis set point matching, including the center point of a single ring&#39;s “a” axis and the center point of a joint-line. 
     A scale factor (sf) for image i relative to image 0 based on a known fixed distance (d) may be defined as: 
                     sf   i     =       d   0       d   i               (   9   )               
and a point (xp, yp) in image i is scaled to match scaling and Y-axis translation (matching fixed point (x0, y0) to a given y set ) as:
 
     
       
         
           
             
               
                 
                   
                     x 
                     
                       n 
                       ⁢ 
                       
                         - 
                       
                       ⁢ 
                       scaled 
                     
                   
                   = 
                   
                     
                       x 
                       
                         0 
                         ⁢ 
                         
                           - 
                         
                         ⁢ 
                         rotated 
                       
                     
                     + 
                     
                       
                         ( 
                         
                           
                             x 
                             
                               n 
                               ⁢ 
                               
                                 - 
                               
                               ⁢ 
                               rotated 
                             
                           
                           - 
                           
                             x 
                             
                               0 
                               ⁢ 
                               
                                 - 
                               
                               ⁢ 
                               rotated 
                             
                           
                         
                         ) 
                       
                       · 
                       
                         sf 
                         i 
                       
                     
                   
                 
               
               
                 
                   ( 
                   10 
                   ) 
                 
               
             
             
               
                 
                   
                     y 
                     
                       n 
                       ⁢ 
                       
                         - 
                       
                       ⁢ 
                       scaled 
                     
                   
                   = 
                   
                     
                       y 
                       
                         0 
                         ⁢ 
                         
                           - 
                         
                         ⁢ 
                         rotated 
                       
                     
                     + 
                     
                       
                         ( 
                         
                           
                             y 
                             
                               n 
                               ⁢ 
                               
                                 - 
                               
                               ⁢ 
                               rotated 
                             
                           
                           - 
                           
                             y 
                             
                               0 
                               ⁢ 
                               
                                 - 
                               
                               ⁢ 
                               rotated 
                             
                           
                         
                         ) 
                       
                       · 
                       
                         sf 
                         i 
                       
                     
                     + 
                     
                       ( 
                       
                         
                           y 
                           set 
                         
                         - 
                         
                           y 
                           
                             0 
                             ⁢ 
                             
                               - 
                             
                             ⁢ 
                             rotated 
                           
                         
                       
                       ) 
                     
                   
                 
               
               
                 
                   ( 
                   11 
                   ) 
                 
               
             
           
         
       
     
     Once scaling is complete, a conversion factor can be determined between a distance in the image and an actual distance based on a number of methods, including: the length of a single ring&#39;s “a” axis and the known diameter of the ring it represents, the length in three dimensions of a strut and the known length of the strut it represents; and/or the length of a sizing marker of known length present on the images. 
     Scaling and rotating for reference can also be applied in reverse for display purposes. That is, many of the calculations described below occur in the rotated for reference and scaled XYZ space, while we may want to display the un-scaled and un-rotated values on the screen. The above formulas can be applied in reverse to calculate screen data from rotated for reference and scaled data. 
     Once the images are rotated for the reference segment and scaled, further corrections can help convert the two 2D ellipse representations of a ring into a 3D representation. First, as described above, the XY ad ZY plane&#39;s elliptical representation of the ring&#39;s center point y values are equal: yc,xy=yc,zy. This can be done because the real life ring&#39;s center point in the XYZ space will match the center point in both the XY (xc, yc, xy) and ZY (zc, yc, zy) planes. So the center point of the ring can be represented by the three dimensional point (xc, yc, zc). As shown in  FIG.  53   , the Y-axis values of center points  1230 ,  1230 ′ are equal. 
     The next adjustment corrects for parallax artifact introduced when point source x-ray beams are used. To understand this artifact, consider the difference in radiographs of a ring taken with the x-ray beam directed perfectly parallel to the ring versus a beam translated away from the parallel position. The first radiograph will display the ring as a line, while the second will display the ring as an ellipse. They are the same ring in space, but they appear differently on the radiograph depending on where the point-source x-ray beam is positioned. 
     The information in the (near) orthogonal planes is used to correct for this parallax effect. Ideal “b” axes in the XY and ZY planes are based on the Y axis height of the “a” axis in the ZY and XY planes respectively: bxy−ideal=abs(y1zy−y0zy)/2; bzy−ideal=abs(y1xy−y0xy)/2.  FIGS.  51 A-B  illustrate a correction of the parallax effect in the lateral view of an ellipse. As the user adjusts the “a” axis endpoints  1232 ,  1234 , the corresponding “b” axis  1236  in the opposite plane is adjusted. The user can further adjust the “b” axis length, as described above when discussion axial ring rotation, to help match the graphical ellipse representation of a ring to the ring on the radiograph. However, when calculating the true position of the ring in 3D space, the user added “b” axis adjustments are discarded and the “ideal” b axis length is used. 
     Finally, a 3D representation of the ring can be defined as the center point (xc, yc, zc), in a plane defined by the “a” axes in the XY and ZY planes, with diameter a−averaged=(a xy-scaled +a zyscaled )/2. 
     Conversion between the 3D XYZ space and the orthogonal image planes can be made using the center point of the ring as P1, the end-point of the “a” axis in the XY plane as P2, and the end-point of the “a” axis in the ZY plane as P3, following the techniques defined below. A ring&#39;s plane can also be represented as a 3D vector (V orthogonal ) perpendicular to the ring originating from the ring&#39;s center point. This can be calculated based on the cross product of two 3D vectors, one from the center point to one end of the “a” axis in the XY plane, and one from the center point to one end of the “a” axis in the ZY plane. 
     
       
         
           
             
               
                 
                   
                     
                       V 
                       ⇀ 
                     
                     xy 
                   
                   = 
                   
                     
                       ( 
                       
                         
                           x 
                           c 
                         
                         , 
                         
                           y 
                           c 
                         
                         , 
                         
                           z 
                           c 
                         
                       
                       ) 
                     
                     → 
                     
                       ( 
                       
                         
                           x 
                           
                             1 
                             ⁢ 
                             xy 
                           
                         
                         , 
                         
                           y 
                           
                             1 
                             ⁢ 
                             xy 
                           
                         
                         , 
                         
                           z 
                           c 
                         
                       
                       ) 
                     
                   
                 
               
               
                 
                   ( 
                   12 
                   ) 
                 
               
             
             
               
                 
                   
                     
                       V 
                       ⇀ 
                     
                     zy 
                   
                   = 
                   
                     
                       ( 
                       
                         
                           x 
                           c 
                         
                         , 
                         
                           y 
                           c 
                         
                         , 
                         
                           z 
                           c 
                         
                       
                       ) 
                     
                     → 
                     
                       ( 
                       
                         
                           x 
                           c 
                         
                         , 
                         
                           y 
                           
                             1 
                             ⁢ 
                             zy 
                           
                         
                         , 
                         
                           z 
                           
                             1 
                             ⁢ 
                             zy 
                           
                         
                       
                       ) 
                     
                   
                 
               
               
                 
                   ( 
                   13 
                   ) 
                 
               
             
             
               
                 
                   
                     
                       V 
                       ⇀ 
                     
                     orthogonal 
                   
                   = 
                   
                     
                       
                         V 
                         ⇀ 
                       
                       xy 
                     
                     × 
                     
                       
                         V 
                         ⇀ 
                       
                       zy 
                     
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     
                       ( 
                       
                         vector 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         cross 
                         ⁢ 
                         
                           - 
                         
                         ⁢ 
                         product 
                       
                       ) 
                     
                   
                 
               
               
                 
                   ( 
                   14 
                   ) 
                 
               
             
           
         
       
     
     In the more general sense, a plane is defined as based on three 3D points 
     
       
         
           
             
               
                 
                   
                     
                       P 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       1 
                     
                     = 
                     
                       ( 
                       
                         
                           x 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           1 
                         
                         , 
                         
                           y 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           1 
                         
                         , 
                         
                           z 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           1 
                         
                       
                       ) 
                     
                   
                   , 
                   
                     
                       
                         P 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         2 
                       
                       = 
                       
                         ( 
                         
                           
                             x 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             2 
                           
                           , 
                           
                             y 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             2 
                           
                           , 
                           
                             z 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             2 
                           
                         
                         ) 
                       
                     
                     ; 
                     
                       
                         and 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         P 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         3 
                       
                       = 
                       
                         ( 
                         
                           
                             x 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             3 
                           
                           , 
                           
                             y 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             3 
                           
                           , 
                           
                             z 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             3 
                           
                         
                         ) 
                       
                     
                   
                 
               
               
                 
                   ( 
                   15 
                   ) 
                 
               
             
           
         
       
     
     Some intermediate values are also defined, including: 
     
       
         
           
             
               
                 
                   
                     
                       d 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       12 
                     
                     = 
                     
                       
                         
                           
                             sqrt 
                             ⁡ 
                             
                               ( 
                               
                                 
                                   x 
                                   ⁢ 
                                   
                                       
                                   
                                   ⁢ 
                                   2 
                                 
                                 - 
                                 
                                   x 
                                   ⁢ 
                                   
                                       
                                   
                                   ⁢ 
                                   1 
                                 
                               
                               ) 
                             
                           
                           ⋀ 
                         
                         ⁢ 
                         2 
                       
                       + 
                       
                         
                           
                             ( 
                             
                               
                                 y 
                                 ⁢ 
                                 
                                     
                                 
                                 ⁢ 
                                 2 
                               
                               - 
                               
                                 y 
                                 ⁢ 
                                 
                                     
                                 
                                 ⁢ 
                                 1 
                               
                             
                             ) 
                           
                           ⋀ 
                         
                         ⁢ 
                         2 
                       
                       + 
                       
                         
                           
                             ( 
                             
                               
                                 z 
                                 ⁢ 
                                 
                                     
                                 
                                 ⁢ 
                                 2 
                               
                               - 
                               
                                 z 
                                 ⁢ 
                                 
                                     
                                 
                                 ⁢ 
                                 1 
                               
                             
                             ) 
                           
                           ⋀ 
                         
                         ⁢ 
                         2 
                       
                     
                   
                   ) 
                 
               
               
                 
                   ( 
                   16 
                   ) 
                 
               
             
             
               
                 
                   
                     
                       d 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       23 
                     
                     = 
                     
                       
                         
                           
                             sqrt 
                             ⁡ 
                             
                               ( 
                               
                                 
                                   x 
                                   ⁢ 
                                   
                                       
                                   
                                   ⁢ 
                                   3 
                                 
                                 - 
                                 
                                   x 
                                   ⁢ 
                                   
                                       
                                   
                                   ⁢ 
                                   2 
                                 
                               
                               ) 
                             
                           
                           ⋀ 
                         
                         ⁢ 
                         2 
                       
                       + 
                       
                         
                           
                             ( 
                             
                               
                                 y 
                                 ⁢ 
                                 
                                     
                                 
                                 ⁢ 
                                 3 
                               
                               - 
                               
                                 y 
                                 ⁢ 
                                 
                                     
                                 
                                 ⁢ 
                                 2 
                               
                             
                             ) 
                           
                           ⋀ 
                         
                         ⁢ 
                         2 
                       
                       + 
                       
                         
                           
                             ( 
                             
                               
                                 z 
                                 ⁢ 
                                 
                                     
                                 
                                 ⁢ 
                                 3 
                               
                               - 
                               
                                 z 
                                 ⁢ 
                                 
                                     
                                 
                                 ⁢ 
                                 2 
                               
                             
                             ) 
                           
                           ⋀ 
                         
                         ⁢ 
                         2 
                       
                     
                   
                   ) 
                 
               
               
                 
                   ( 
                   17 
                   ) 
                 
               
             
             
               
                 
                   
                     d 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     13 
                   
                   = 
                   
                     
                       
                         
                           sqrt 
                           ⁡ 
                           
                             ( 
                             
                               
                                 x 
                                 ⁢ 
                                 
                                     
                                 
                                 ⁢ 
                                 3 
                               
                               - 
                               
                                 x 
                                 ⁢ 
                                 
                                     
                                 
                                 ⁢ 
                                 1 
                               
                             
                             ) 
                           
                         
                         ⋀ 
                       
                       ⁢ 
                       2 
                     
                     + 
                     
                       
                         
                           ( 
                           
                             
                               y 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               3 
                             
                             - 
                             
                               y 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               1 
                             
                           
                           ) 
                         
                         ⋀ 
                       
                       ⁢ 
                       2 
                     
                     + 
                     
                       
                         
                           ( 
                           
                             
                               z 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               3 
                             
                             - 
                             
                               z 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               1 
                             
                           
                           ) 
                         
                         ⋀ 
                       
                       ⁢ 
                       2 
                     
                   
                 
               
               
                 
                   ( 
                   18 
                   ) 
                 
               
             
             
               
                 
                   
                     temp 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     1 
                   
                   = 
                   
                     
                       ( 
                       
                         
                           d 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           13 
                           * 
                           d 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           13 
                         
                         + 
                         
                           d 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           12 
                           * 
                           d 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           12 
                         
                         - 
                         
                           d 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           23 
                           * 
                           d 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           23 
                         
                       
                       ) 
                     
                     ⁢ 
                     
                       / 
                     
                     ⁢ 
                     
                       ( 
                       
                         2 
                         * 
                         d 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         12 
                       
                       ) 
                     
                   
                 
               
               
                 
                   ( 
                   19 
                   ) 
                 
               
             
             
               
                 
                   
                     temp 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     2 
                   
                   = 
                   
                     sqrt 
                     ⁡ 
                     
                       ( 
                       
                         
                           d 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           13 
                           * 
                           d 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           13 
                         
                         - 
                         
                           a 
                           * 
                           a 
                         
                       
                       ) 
                     
                   
                 
               
               
                 
                   ( 
                   20 
                   ) 
                 
               
             
           
         
       
     
     Point P1 is mapped to the origin of the 2D plane (P1→(0,0)); Point P2 is mapped to a distance d12 along the 2D plane&#39;s X axis (P2→(0,d12)); Point P3 is mapped to an intermediate point based on the calculations above (P3→(temp1, temp2)); 
     Nine plane definition parameters are defined based on the above formulas so that we can calculate a 3D point P0=(x0,y0,z0) based on a 2D point in the defined plane (i,j) such that: 
     
       
         
           
             
               
                 
                   
                     
                       x 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       0 
                     
                     = 
                     
                       
                         c 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         1 
                         * 
                         i 
                       
                       + 
                       
                         c 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         2 
                         * 
                         j 
                       
                       + 
                       
                         c 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         3 
                       
                     
                   
                   ; 
                   
                     
                       y 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       0 
                     
                     = 
                     
                       
                         c 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         4 
                         * 
                         i 
                       
                       + 
                       
                         c 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         5 
                         * 
                         j 
                       
                       + 
                       
                         c 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         6 
                       
                     
                   
                   ; 
                   
                     
                       z 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       0 
                     
                     = 
                     
                       
                         c 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         7 
                         * 
                         i 
                       
                       + 
                       
                         c 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         8 
                         * 
                         j 
                       
                       + 
                       
                         c 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         9 
                       
                     
                   
                 
               
               
                 
                   ( 
                   21 
                   ) 
                 
               
             
             
               
                 
                   
                     c 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     1 
                   
                   = 
                   
                     
                       ( 
                       
                         
                           x 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           2 
                         
                         - 
                         
                           x 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           1 
                         
                       
                       ) 
                     
                     ⁢ 
                     
                       / 
                     
                     ⁢ 
                     d 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     12 
                   
                 
               
               
                 
                   ( 
                   22 
                   ) 
                 
               
             
             
               
                 
                   
                     c 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     2 
                   
                   = 
                   
                     
                       ( 
                       
                         
                           x 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           3 
                         
                         - 
                         
                           c 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           1 
                           * 
                           temp 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           1 
                         
                         - 
                         
                           c 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           2 
                         
                       
                       ) 
                     
                     ⁢ 
                     
                       / 
                     
                     ⁢ 
                     temp 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     2 
                   
                 
               
               
                 
                   ( 
                   23 
                   ) 
                 
               
             
             
               
                 
                   
                     c 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     3 
                   
                   = 
                   
                     x 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     1 
                   
                 
               
               
                 
                   ( 
                   24 
                   ) 
                 
               
             
             
               
                 
                   
                     c 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     4 
                   
                   = 
                   
                     
                       ( 
                       
                         
                           y 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           2 
                         
                         - 
                         
                           y 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           1 
                         
                       
                       ) 
                     
                     ⁢ 
                     
                       / 
                     
                     ⁢ 
                     d 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     12 
                   
                 
               
               
                 
                   ( 
                   25 
                   ) 
                 
               
             
             
               
                 
                   
                     c 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     5 
                   
                   = 
                   
                     
                       ( 
                       
                         
                           y 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           3 
                         
                         - 
                         
                           y 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           4 
                           * 
                           temp 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           1 
                         
                         - 
                         
                           c 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           6 
                         
                       
                       ) 
                     
                     ⁢ 
                     
                       / 
                     
                     ⁢ 
                     temp 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     2 
                   
                 
               
               
                 
                   ( 
                   26 
                   ) 
                 
               
             
             
               
                 
                   
                     c 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     6 
                   
                   = 
                   
                     y 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     1 
                   
                 
               
               
                 
                   ( 
                   27 
                   ) 
                 
               
             
             
               
                 
                   
                     c 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     7 
                   
                   = 
                   
                     
                       ( 
                       
                         
                           z 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           2 
                         
                         - 
                         
                           z 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           1 
                         
                       
                       ) 
                     
                     ⁢ 
                     
                       / 
                     
                     ⁢ 
                     d 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     12 
                   
                 
               
               
                 
                   ( 
                   28 
                   ) 
                 
               
             
             
               
                 
                   
                     c 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     8 
                   
                   = 
                   
                     
                       ( 
                       
                         
                           z 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           3 
                         
                         - 
                         
                           c 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           7 
                           * 
                           temp 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           1 
                         
                         - 
                         
                           c 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           9 
                         
                       
                       ) 
                     
                     ⁢ 
                     
                       / 
                     
                     ⁢ 
                     temp 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     2 
                   
                 
               
               
                 
                   ( 
                   29 
                   ) 
                 
               
             
             
               
                 
                   
                     c 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     9 
                   
                   = 
                   
                     z 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     1 
                   
                 
               
               
                 
                   ( 
                   30 
                   ) 
                 
               
             
           
         
       
     
     A plane can also be defined based a 3D vector (V orthogonal ) orthogonal to the 2D plane, and a separate point (P2=(x2,y2,z2)) in 3D space that lies in the 2D plane. The origin of the 2D plane P1=(x1,y1,z1) is defined as the closest point of P2 on V orthogonal . A 3D vector (V 1-2 ) is defined from P2 to P1. We define a 3D vector (V 1-3 ) parallel to the cross-product of V orthogonal  and V 1-2 , starting at P1 with length of ½ the length of V 1-2 . P3=(x3,y3,z3) is defined as the endpoint of V 1-3 . The plane based on points P1, P2, P3 is defined as above. 
     In response to receiving the ring rotation user input, the system generates a display of the resulting graphical representation of the ring superimposed on the at least one digital medical image.  FIG.  26    is a screen shot of the PLACE RINGS tab  500  showing rotations involving multiple ring pairs  532 ′.  FIGS.  27 A- 27 F  show screen shots of a user highlighting each strut  530  by number  534  to assist with ring identification. 
       FIG.  28    is a screen shot of the PLACE RINGS tab  500  showing a user entering true strut lengths  536  taken from the actual struts  530 . This aids in calculating one or more scaling factors. As shown in  FIG.  29   , the user can choose to view the images with or without rotation for reference and/or scaling  538 . 
     In some embodiments, the location of strut attachments on the ring—defined by the manufacturer and selected by the user—in the 2D ring plane (the major plane of the ring), can be used to convert this information to the position of struts in the XY and ZY planes. For each strut attachment point, the radius from the ring&#39;s center point to the strut attachment point (strut radius (n)), and the angle from the ring&#39;s rotational reference point to the attachment point (strut angle (n)) are both known. Additional devices may be attached to the ring to further modify the strut attachment point, which will in turn modify (strut radius (n)) and (strut angle (n)). To find the display parameters for the strut attachment point, we can calculate: 
     
       
         
           
             
               
                 
                   
                     x 
                     strut 
                   
                   = 
                   
                     
                       x 
                       c 
                     
                     + 
                     
                       
                         
                           
                             strut 
                             radius 
                           
                           ⁡ 
                           
                             ( 
                             n 
                             ) 
                           
                         
                         · 
                         2 
                         · 
                         
                           cos 
                           ⁡ 
                           
                             ( 
                             
                               n 
                               - 
                               
                                 
                                   strut 
                                   angle 
                                 
                                 ⁡ 
                                 
                                   ( 
                                   n 
                                   ) 
                                 
                               
                             
                             ) 
                           
                         
                         · 
                         cos 
                       
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       θ 
                     
                     - 
                     
                       
                         b 
                         · 
                         
                           sin 
                           ⁡ 
                           
                             ( 
                             
                               n 
                               - 
                               
                                 
                                   strut 
                                   angle 
                                 
                                 ⁡ 
                                 
                                   ( 
                                   n 
                                   ) 
                                 
                               
                             
                             ) 
                           
                         
                         · 
                         sin 
                       
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       θ 
                     
                   
                 
               
               
                 
                   ( 
                   31 
                   ) 
                 
               
             
             
               
                 
                   
                     y 
                     strut 
                   
                   = 
                   
                     
                       y 
                       c 
                     
                     + 
                     
                       
                         
                           
                             strut 
                             radius 
                           
                           ⁡ 
                           
                             ( 
                             n 
                             ) 
                           
                         
                         · 
                         2 
                         · 
                         
                           cos 
                           ⁡ 
                           
                             ( 
                             
                               n 
                               - 
                               
                                 
                                   strut 
                                   angle 
                                 
                                 ⁡ 
                                 
                                   ( 
                                   n 
                                   ) 
                                 
                               
                             
                             ) 
                           
                         
                         · 
                         sin 
                       
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       θ 
                     
                     + 
                     
                       
                         b 
                         · 
                         
                           sin 
                           ⁡ 
                           
                             ( 
                             
                               n 
                               - 
                               
                                 
                                   strut 
                                   angle 
                                 
                                 ⁡ 
                                 
                                   ( 
                                   n 
                                   ) 
                                 
                               
                             
                             ) 
                           
                         
                         · 
                         cos 
                       
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       θ 
                     
                   
                 
               
               
                 
                   ( 
                   32 
                   ) 
                 
               
             
           
         
       
     
     Struts may also have a portion directed perpendicular to the ring (strut drop (n)) from the strut attachment point. This includes a portion of the strut itself that is fixed perpendicular to a ring as well as half of the ring thickness itself. Additional devices may be attached to the ring to further modify the drop length, which will in turn modify (strut drop (n)). One way to calculate the displayed portion of this dropped segment involves using the cosine of the ratio of the ring&#39;s “b” axis to the “a” axis. This displayed portion of the drop length is then drawn perpendicular to the “a” axis to obtain x strut-drop (n): 
     
       
         
           
             
               
                 
                   
                     
                       strut 
                       
                         drop 
                         - 
                         xy 
                       
                     
                     ⁡ 
                     
                       ( 
                       n 
                       ) 
                     
                   
                   = 
                   
                     cos 
                     ⁢ 
                     
                       
                         
                           b 
                           xy 
                         
                         
                           a 
                           xy 
                         
                       
                       · 
                       
                         
                           strut 
                           
                             drop 
                             - 
                             xy 
                           
                         
                         ⁡ 
                         
                           ( 
                           n 
                           ) 
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   33 
                   ) 
                 
               
             
           
         
       
     
     Another way to calculate the dropped portion of the strut is to calculate a 3D vector orthogonal to the major plane of the ring starting from the ring&#39;s center point (xc, yc, zc) as described above. Translation of the ring&#39;s center point along this 3D orthogonal to the ring plane followed by recalculating the strut attachment point, as described above, using the translated ring reveals the strut drop  point. 
     As shown in  FIG.  55   , a complete strut on the display can be drawn between the corresponding calculated strut drop  points between two rings in each of the XY and ZY planes. 
     The strut length can be calculated between corresponding calculated strut drop  positions between two rings in the XYZ space using a standard formula for distance between two points where x1, y1, z1 are the drop point on ring  1 , and x0,y0,z0 are the drop points on ring  0 : 
     
       
         
           
             
               
                 
                   
                     
                       Strut 
                       length 
                     
                     ⁡ 
                     
                       ( 
                       n 
                       ) 
                     
                   
                   = 
                   
                     
                       
                         
                           
                             
                               
                                 ( 
                                 
                                   
                                     x 
                                     ⁢ 
                                     
                                         
                                     
                                     ⁢ 
                                     
                                       1 
                                       drop 
                                     
                                     ⁢ 
                                     
                                       ( 
                                       n 
                                       ) 
                                     
                                   
                                   - 
                                   
                                     x 
                                     ⁢ 
                                     
                                         
                                     
                                     ⁢ 
                                     
                                       0 
                                       drop 
                                     
                                     ⁢ 
                                     
                                       ( 
                                       n 
                                       ) 
                                     
                                   
                                 
                                 ) 
                               
                               2 
                             
                             + 
                             
                               
                                 ( 
                                 
                                   
                                     y 
                                     ⁢ 
                                     
                                         
                                     
                                     ⁢ 
                                     
                                       1 
                                       drop 
                                     
                                     ⁢ 
                                     
                                       ( 
                                       n 
                                       ) 
                                     
                                   
                                   - 
                                   
                                     y 
                                     ⁢ 
                                     
                                         
                                     
                                     ⁢ 
                                     
                                       0 
                                       drop 
                                     
                                     ⁢ 
                                     
                                       ( 
                                       n 
                                       ) 
                                     
                                   
                                 
                                 ) 
                               
                               2 
                             
                             + 
                           
                         
                       
                       
                         
                           
                             
                               ( 
                               
                                 
                                   z 
                                   ⁢ 
                                   
                                       
                                   
                                   ⁢ 
                                   
                                     1 
                                     drop 
                                   
                                   ⁢ 
                                   
                                     ( 
                                     n 
                                     ) 
                                   
                                 
                                 - 
                                 
                                   z 
                                   ⁢ 
                                   
                                       
                                   
                                   ⁢ 
                                   
                                     1 
                                     drop 
                                   
                                   ⁢ 
                                   
                                     ( 
                                     n 
                                     ) 
                                   
                                 
                               
                               ) 
                             
                             2 
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   34 
                   ) 
                 
               
             
           
         
       
     
       FIG.  30    shows a schematic drawing of various views of a model of a ring marker  540  hardware that may be placed on a ring to facilitates proper identification of ring positioning when using digital imaging. A wide variety of shapes may be used with the common purpose of marking a spot on the external fixator ring that is easily identifiable on both the AP and lateral images. This facilitates setting of proper view ring spread, ring mounting rotation, and ring x-ray rotation as described above. Shown here is just one of a variety of shapes that may be used for this purpose. 
     Translate Segments Tab 
       FIG.  31    shows a screen shot of the “TRANSLATE SEGMENTS” tab  600  that allows the user to translate non-reference segments relative to the reference segment to define the translational deformity. In addition to the angular deformity described above, there can be translational deformity. Translational deformity is when one segment is translated relative to another. For example, imagine the situation where adjacent segment are parallel to each other but one is shifted relative to the other one. Since they never intersect, there is no CORA and no angular deformity. In this circumstance the deformity is purely translational. More commonly, there will be a component of angulation and translation in a deformity. The program calculates and updates a new CORA based on the translated segments and updates the display in real time. 
     The second aspect of this tab is the ability to translate the CORA. A translated CORA still is a point around which rotation will correct the angular deformity but is moved away from the intersection of the two segments. The translated CORA can be any point along the geometric bisector of the larger angle made by the two segments. Translating a CORA will either lengthen (distract) or shorten (compress) the moving segment relative to the reference segment depending on which direction the translated CORA is moved. The size of the lengthening or shortening is calculated and displayed on screen graphically and numerically in real time for easy user reference. 
     The third aspect available that the user can also choose to match the vertical position of the AP and lateral view CORAs (match CORAs). In this circumstance, the program will calculate the segment translation in one plane as the user translates the segment in the other plane. 
     Finally, the user can choose to define translation by marking start and end points on either segment of the deformity. With this concept, the user defines a point on or near the reference segment (start point) and a point on or near the moving segment (end point) that is supposed to end up at the start point as the correction is made. The amount of translation and updated CORA and moving segment are calculated and displayed in real time. 
     As seen in  FIG.  31   , the segments  310 ,  310 ′ are displayed with associated CORA  340 ,  340 ′. The arrows on the transverse lines  610 ,  610 ′ show the size of the lengthening or shortening that will occur at points away from the CORA.  FIG.  32    shows a screen shot of the AP segment  310  being translated medially. Of note is the new segment position  310  and updated CORA position  614 , as compared to the CORA position  612  in  FIG.  31   . 
       FIG.  33    is a screen shot of the “TRANSLATE SEGMENTS” tab  600  showing a user moving the CORAs  340 . Here both the AP  340  and lateral CORA  340 ′ have been moved to the apex side of the deformity, away from the center line of the bone. This prevents impinging (binding) of bone segments  310 ,  310 ′ during the correction. It is equivalent to correcting the angular deformity around the non-translated CORA and adding a small amount of lengthening. The amount of lengthening is shown by the lines  616 ,  616 ′ and arrows  618 ,  618 ′. 
       FIG.  34    shows a screen shot of the TRANSLATE SEGMENTS tab  600  where the vertical positions of the CORAs  340 ,  340 ′ are matched. In this case, when the user translates a segment  310  in one view it is translated in the other view by an amount to keep the CORAs matched. 
       FIGS.  35 A- 35 B  show screen shots of multiple segments  310 ,  310 ′ being translated. When a segment  622 ,  622 ′ is translated, all the segments below  624 ,  624 ′ (or above for those above the reference segment) are translated as well. This keeps the net translation for these other segments at zero. 
       FIG.  36    is a screen shot of the TRANSLATE SEGMENTS tab  600  showing how images may be viewed with or without rotation  626  for reference and/or scaling  628 . 
     In some embodiments, a 3D point can be manipulated based on rotation and translation in each of the 3 planes defined by XYZ space: rotation xy , rotation zy , rotation xz , translation xy , translation zy , translation xz . 
     Rotation of a point P1(x1,y1,z1) in the xy plane of XYZ space around a defined point P0(x0,y0,z0) starts by setting a vector in the xy plane V 0-1 =(x0,y0)→(x1,y1) in the xy plane with polar coordinates “radius” and “angle to the x axis” starting at point P0. In this description the xy plane refers to a real plane in XYZ space and may be distinct from the XY plane (AP plane) defined by the radiographic images. 
     
       
         
           
             
               
                 
                   
                     
                       V 
                       ⇀ 
                     
                     
                       
                         0 
                         - 
                         1 
                       
                       , 
                       radius 
                     
                   
                   = 
                   
                     
                       
                         
                           ( 
                           
                             
                               x 
                               1 
                             
                             - 
                             
                               x 
                               0 
                             
                           
                           ) 
                         
                         2 
                       
                       + 
                       
                         
                           ( 
                           
                             
                               y 
                               1 
                             
                             - 
                             
                               y 
                               0 
                             
                           
                           ) 
                         
                         2 
                       
                     
                   
                 
               
               
                 
                   ( 
                   35 
                   ) 
                 
               
             
             
               
                 
                   
                     
                       V 
                       ⇀ 
                     
                     
                       
                         0 
                         - 
                         1 
                       
                       , 
                       angle 
                     
                   
                   = 
                   
                     
                       tan 
                       
                         - 
                         1 
                       
                     
                     ⁡ 
                     
                       ( 
                       
                         
                           
                             y 
                             1 
                           
                           - 
                           
                             y 
                             0 
                           
                         
                         
                           
                             x 
                             1 
                           
                           - 
                           
                             x 
                             0 
                           
                         
                       
                       ) 
                     
                   
                 
               
               
                 
                   ( 
                   36 
                   ) 
                 
               
             
           
         
       
     
     The rotation then occurs by adding the desired rotation to the angular component of V 0-1  to get V′ 0-1 . 
     
       
         
           
             
               
                 
                   
                     
                       
                         V 
                         ′ 
                       
                       ⇀ 
                     
                     
                       
                         0 
                         - 
                         1 
                       
                       , 
                       angle 
                     
                   
                   = 
                   
                     
                       
                         V 
                         ⇀ 
                       
                       
                         
                           0 
                           - 
                           1 
                         
                         , 
                         angle 
                       
                     
                     + 
                     
                       rotation 
                       xy 
                     
                   
                 
               
               
                 
                   ( 
                   37 
                   ) 
                 
               
             
           
         
       
     
     Standard conversions can then be used to calculate P′1(x′1,y′1,z1) from the end point of V 0-1 . 
     
       
         
           
             
               
                 
                   
                     x 
                     1 
                     ′ 
                   
                   = 
                   
                     
                       
                         
                           
                             V 
                             ⇀ 
                           
                           
                             
                               0 
                               - 
                               1 
                             
                             , 
                             radius 
                           
                           ′ 
                         
                         · 
                         cos 
                       
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       
                         
                           V 
                           ⇀ 
                         
                         
                           
                             0 
                             - 
                             1 
                           
                           , 
                           angle 
                         
                         ′ 
                       
                     
                     + 
                     
                       x 
                       0 
                     
                   
                 
               
               
                 
                   ( 
                   38 
                   ) 
                 
               
             
             
               
                 
                   
                     y 
                     1 
                     ′ 
                   
                   = 
                   
                     
                       
                         
                           
                             V 
                             ⇀ 
                           
                           
                             
                               0 
                               - 
                               1 
                             
                             , 
                             radius 
                           
                           ′ 
                         
                         · 
                         sin 
                       
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       
                         
                           V 
                           ⇀ 
                         
                         
                           
                             0 
                             - 
                             1 
                           
                           , 
                           angle 
                         
                         ′ 
                       
                     
                     + 
                     
                       y 
                       0 
                     
                   
                 
               
               
                 
                   ( 
                   39 
                   ) 
                 
               
             
           
         
       
     
     Rotation of a point P1(x1,y1,z1) in the zy plane of XYZ space around a defined point P0(x0,y0,z0) starts by setting a vector in the zy plane V 0-1 =(z0,y0)→(z1,y1) in the zy plane with polar coordinates “radius” and “angle to the Z axis” starting at point P0. In this description the zy plane refers to a real plane in XYZ space and may be distinct from the ZY plane (lateral plane) defined by the radiographic images. 
     
       
         
           
             
               
                 
                   
                     
                       V 
                       ⇀ 
                     
                     
                       
                         0 
                         - 
                         1 
                       
                       , 
                       radius 
                     
                   
                   = 
                   
                     
                       
                         
                           ( 
                           
                             
                               z 
                               1 
                             
                             - 
                             
                               z 
                               0 
                             
                           
                           ) 
                         
                         2 
                       
                       + 
                       
                         
                           ( 
                           
                             
                               y 
                               1 
                             
                             - 
                             
                               y 
                               0 
                             
                           
                           ) 
                         
                         2 
                       
                     
                   
                 
               
               
                 
                   ( 
                   40 
                   ) 
                 
               
             
             
               
                 
                   
                     
                       V 
                       ⇀ 
                     
                     
                       
                         0 
                         - 
                         1 
                       
                       , 
                       angle 
                     
                   
                   = 
                   
                     
                       tan 
                       
                         - 
                         1 
                       
                     
                     ⁡ 
                     
                       ( 
                       
                         
                           
                             y 
                             1 
                           
                           - 
                           
                             y 
                             0 
                           
                         
                         
                           
                             z 
                             1 
                           
                           - 
                           
                             z 
                             0 
                           
                         
                       
                       ) 
                     
                   
                 
               
               
                 
                   ( 
                   41 
                   ) 
                 
               
             
           
         
       
     
     The rotation then occurs by adding the desired rotation to the angular component of V 0-1  to get V′ 0-1 . 
     
       
         
           
             
               
                 
                   
                     
                       V 
                       _ 
                     
                     
                       
                         0 
                         - 
                         1 
                       
                       , 
                       angle 
                     
                     ′ 
                   
                   = 
                   
                     
                       
                         V 
                         _ 
                       
                       
                         
                           0 
                           - 
                           1 
                         
                         , 
                         angle 
                       
                     
                     + 
                     
                       rotation 
                       xy 
                     
                   
                 
               
               
                 
                   ( 
                   42 
                   ) 
                 
               
             
           
         
       
     
     Standard conversions can then be used to calculate P′1(x1,y′1,z′1) from the end point of V 0-1 . 
     
       
         
           
             
               
                 
                   
                     z 
                     1 
                     ′ 
                   
                   = 
                   
                     
                       
                         
                           
                             V 
                             ⇀ 
                           
                           
                             
                               0 
                               - 
                               1 
                             
                             , 
                             radius 
                           
                           ′ 
                         
                         · 
                         cos 
                       
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       
                         
                           V 
                           ⇀ 
                         
                         
                           
                             0 
                             - 
                             1 
                           
                           , 
                           angle 
                         
                         ′ 
                       
                     
                     + 
                     
                       z 
                       0 
                     
                   
                 
               
               
                 
                   ( 
                   43 
                   ) 
                 
               
             
             
               
                 
                   
                     y 
                     1 
                     ′ 
                   
                   = 
                   
                     
                       
                         
                           
                             V 
                             ⇀ 
                           
                           
                             
                               0 
                               - 
                               1 
                             
                             , 
                             radius 
                           
                           ′ 
                         
                         · 
                         sin 
                       
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       
                         
                           V 
                           ⇀ 
                         
                         
                           
                             0 
                             - 
                             1 
                           
                           , 
                           angle 
                         
                         ′ 
                       
                     
                     + 
                     
                       y 
                       0 
                     
                   
                 
               
               
                 
                   ( 
                   44 
                   ) 
                 
               
             
           
         
       
     
     Rotation of a point P1=(x1,y1,z1) in the xz plane of XYZ space is a special case of rotation of a point around a fixed 3D vector (V0), where V0 is the y-axis. In the general case, we define the plane of rotation using V0 and the point to correct (P1) as described in the plane definition section above for plane definition using an orthogonal vector and point. The origin of the 2D plane is the intersection of V0 and the 2D correction plane. In the 2D correction plane, this intersection is defined as point P0 converted =(i0,j0). A 2D vector V0-1 is defined starting from P0 converted  and extending to the point P1 as represented in the new 2D plane (P1 converted =(i1,j1)). 
     
       
         
           
             
               
                 
                   
                     
                       V 
                       ⇀ 
                     
                     
                       
                         0 
                         - 
                         1 
                       
                       , 
                       radius 
                     
                   
                   = 
                   
                     
                       
                         
                           ( 
                           
                             
                               i 
                               1 
                             
                             - 
                             
                               i 
                               0 
                             
                           
                           ) 
                         
                         2 
                       
                       + 
                       
                         
                           ( 
                           
                             
                               j 
                               1 
                             
                             - 
                             
                               j 
                               0 
                             
                           
                           ) 
                         
                         2 
                       
                     
                   
                 
               
               
                 
                   ( 
                   45 
                   ) 
                 
               
             
             
               
                 
                   
                     
                       V 
                       ⇀ 
                     
                     
                       
                         0 
                         - 
                         1 
                       
                       , 
                       angle 
                     
                   
                   = 
                   
                     
                       tan 
                       
                         - 
                         1 
                       
                     
                     ⁡ 
                     
                       ( 
                       
                         
                           
                             j 
                             1 
                           
                           - 
                           
                             j 
                             0 
                           
                         
                         
                           
                             i 
                             1 
                           
                           - 
                           
                             i 
                             0 
                           
                         
                       
                       ) 
                     
                   
                 
               
               
                 
                   ( 
                   46 
                   ) 
                 
               
             
           
         
       
     
     The rotational correction is added to the polar form of vector V1 to find V′1, whose end-point is P′1 converted =(i′1, j′1). 
     
       
         
           
             
               
                 
                   
                     i 
                     1 
                     ′ 
                   
                   = 
                   
                     
                       
                         
                           
                             V 
                             ⇀ 
                           
                           
                             
                               0 
                               - 
                               1 
                             
                             , 
                             radius 
                           
                           ′ 
                         
                         · 
                         cos 
                       
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       
                         
                           V 
                           ⇀ 
                         
                         
                           
                             0 
                             - 
                             1 
                           
                           , 
                           angle 
                         
                         ′ 
                       
                     
                     + 
                     
                       i 
                       0 
                     
                   
                 
               
               
                 
                   ( 
                   47 
                   ) 
                 
               
             
             
               
                 
                   
                     j 
                     1 
                     ′ 
                   
                   = 
                   
                     
                       
                         
                           
                             V 
                             ⇀ 
                           
                           
                             
                               0 
                               - 
                               1 
                             
                             , 
                             radius 
                           
                           ′ 
                         
                         · 
                         sin 
                       
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       
                         
                           V 
                           ⇀ 
                         
                         
                           
                             0 
                             - 
                             1 
                           
                           , 
                           angle 
                         
                         ′ 
                       
                     
                     + 
                     
                       j 
                       0 
                     
                   
                 
               
               
                 
                   ( 
                   48 
                   ) 
                 
               
             
           
         
       
     
     This P1′ converted  is converted back to 3D space as described above in the plane definition section to find P′1=(x′1,y′1,z′1). 
     Translation of a point P0(x0,y0,z0) along the x-axis by x units, along the y-axis by y units, and along the z-axis by z units is accomplished by adding values x, y, and z to the components of P0 to get P′0. 
     
       
         
           
             
               
                 
                   
                     P 
                     
                       0 
                       , 
                       x 
                     
                     ′ 
                   
                   = 
                   
                     
                       x 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       0 
                     
                     + 
                     x 
                   
                 
               
               
                 
                   ( 
                   49 
                   ) 
                 
               
             
             
               
                 
                   
                     P 
                     
                       0 
                       , 
                       y 
                     
                     ′ 
                   
                   = 
                   
                     
                       y 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       0 
                     
                     + 
                     y 
                   
                 
               
               
                 
                   ( 
                   50 
                   ) 
                 
               
             
             
               
                 
                   
                     P 
                     
                       0 
                       , 
                       z 
                     
                     ′ 
                   
                   = 
                   
                     
                       z 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       0 
                     
                     + 
                     z 
                   
                 
               
               
                 
                   ( 
                   51 
                   ) 
                 
               
             
           
         
       
     
     Translation may be made perpendicular to a line in the xy, zy, or xz planes by calculating the appropriate x, y, and z components required to accommodate such a translation. 
     It should be noted that if multiple corrections are made, they should be made sequentially so that changes accumulate. For instance, adding the results of rotating in xy plane and the zy planes will not give the same result as rotating in the xy plane, then rotating the result of the first rotation in the zy plane. 
       FIGS.  37 A- 37 B  shows screen shots of the “SET CORRECTION” tab  700 . This tab displays the correction of segments and rings described in the preceding tabs and allows the user to customize the correction. 
     The correction algorithm is designed to allow independent correction of angular deformity in three planes and translational deformity in three planes. The underlying concept is the ability to calculate a correction path for any point in space based on the deformity parameters described in the preceding tabs. 
     The user can graphically define one or many 3D biological rate-limiting points for a bone deformity correction treatment to be performed using the external fixator; and, based upon this information, the system will calculate at least one of a 3D bone correction speed and a number of days for the bone deformity correction treatment, and/or generate a bone deformity correction plan specifying for each strut a daily sequence of strut lengths to be used in the bone deformity correction treatment. 
     These are points that will determine over how many days a correction will take place. By calculating a correction path rate for each 3D biological rate-limiting point (in 3D), using a large number of data points, an estimate of the true rate point correction path curve is made and the true rate point correction path length can be calculated. Dividing this number by the user defined 3D bone correction speed (mm/day) returns the number of days for the bone deformity correction. 
     Once the number of days for the correction is known, the final correction path for segment endpoints and ring axis points can be calculated. These correction paths are divided into the number of correction days and filled in between correction days to make the curves look smoother in the on screen views. Final strut lengths are calculated from the corrected ring axis points. 
     The rate point(s) can be moved on the graphical user interface and corresponding true rate point correction path, correction days, and final segment and ring corrections are calculated and displayed in real time. 
     The user can manipulate the correction parameters in a number of ways. Corrections can be broken up into multiple steps. In each correction step, the user can individually set each parameter (of the six correction parameters) as well as the correction rate and/or the correction days. In this way the actual correction is customizable. For instance, a small distraction can be set initially to disengage bone fragments prior to correction, or compression can be applied after correction. 
     The user can graphically define where a “cut” would be made on the image. The program then will move the portion of the image to be corrected with the segments/rings (partial image correction). This would show the user what the actual corrected image would look like. An alternative is to define the segments displayed as parallel lines marking the width of the bone. 
     Set Correction Tab 
       FIGS.  37 A- 37 B  are screen shots of the SET CORRECTION tab  700  showing the initial correction screen showing the state of the segments  310 ,  310 ′ and rings  514 ,  514 ′ initially (correction day 0)  710  and finally (correction day 1)  712 . The path of the correction of the ends of the moving segment are shown by the arrows  714 ,  714 ′. 
       FIG.  38    shows a screen shot of the SET CORRECTION tab  700  where a rate point  716 ,  716 ′ has been added and can be moved by the user. Rate points can be added  722 , edited  724 , and deleted  726 . The rate point is a three dimensional entity and has a representation in both the AP and lateral planes of the digital medical images  230 ,  230 ′. The program calculates the true rate point correction path length  718  and then calculates the number of correction days  720  based on the correction rate (maximum distance/day). The rate point correction path  728  is shown. Rate points are identified by color with the deformity pair for which they are set. 
       FIGS.  39 A- 39 E  show screen shots of the SET CORRECTION tab  700  of corrections shown for days 0, 2, 4, 6, 8 on the correction display  712 . Note the correction path  728 ,  728 ′ and gradual correction of segments and rings. The user can scroll up and down the correction day number to see the effect of correction visually, shown by  730 ,  730 ′. 
       FIG.  40    shows a screen shot of the SET CORRECTION tab  700  where a user is adjusting components of the correction individually. Here the user has added 20 mm of length to the correction  740 . Compared to  FIG.  29   , the correction paths  742 ,  742 ′ are changed. The final result is similar to  FIG.  29 D  except lengthened longitudinally. 
       FIGS.  41 A- 41 C  show screen shots of a two-step correction on days 0, 8, and 28, respectively. In  FIG.  41 A  step 1 of 2 is the initial correction calculated based on deformity parameters. Step 2 of 2 (shown here) adds 20 mm of length  744 . Notice on the rate paths that initially the correction is angular (curved portion)  746 ′ and then there is a linear translation (straight portion)  748 ′. In  FIG.  41 B  on day 8 of 28 of the same two-step correction, the angular correction is complete  746 ′ and the linear translation  748 ′ is about to begin. Notice the segment endpoint position  750 ′ on the correction path. In  FIG.  41 C  on day 28 of 28, the moving segment endpoint  750 ′ and ring  514 ′ have been translated distally (linearly). The end result is the same as in  FIG.  40   . 
       FIGS.  42 A- 42 B  show screen shots of the SET CORRECTION tab  700  where corrections applied to multiple deformity pairs  752 .  FIG.  43    is a screen shot showing a user&#39;s ability to view images with or without rotation for reference  754  and/or scaling  756 . 
     In some embodiments, the manipulation (rotation with three degrees of freedom and translation in three planes) of a 3D representation of a ring, as described in the sections above, is made by manipulating the end-points of the orthogonal vector (V orthogonal ) that defines the 2D major plane of the ring. Manipulation of these endpoints can be performed, as described above. We may also manipulate the 3D ring rotation reference point (P ref ) to keep track of ring azimuthal rotation during manipulation. The methods described above are used to manipulate the end-points of V orthogonal  to find V′ orthogonal  and to manipulate P ref  to find P′ ref . Next, we define the plane of the ring after manipulation using V′ orthogonal  and P′ ref  as described in the plane definition section above. Orthogonal vectors (V′ xy-ringplane  and V′ zy-ringplane ) along the long axes of the ring are defined in the plane of the ring using: the ring&#39;s center point (P′ c-ringplane ), which is defined during ring plane calculation; the manipulated and converted ring rotation reference point in the plane of the ring (P′ ref-ringplane ); and the ring azimuthal rotation angle. Finally, converting from the plane of the ring back to 3D space, as described in the plane definition section above, returns vectors representing the axes of the ring in the xy and zy planes of 3D space V′ xy  and V′ zy . Converting P′ ref-ringplane  from the plane of the ring back to 3D space returns the manipulated reference point (P′ ref ). With this information, all the points of the ring can be constructed as described above.  FIGS.  58 A-B  show screenshots of the SET CORRECTION tab  700  on days 0 and 1 of a correction. 
     In order to determine the number of days over which a ring manipulation is to occur, we can define one or more rate-points on the rotated for reference and scaled images in two or more planes (RP(n)=(x n , y n , z n )).  FIG.  59 A  shows a screen shot of the SET CORRECTION tab  700  of a manipulation with a rate point  760  on day 0 of 10. The rate point is manipulated by rotating in three planes and translating in three planes as defined above. Each of the six parameters of the total manipulation ranging over a large number (e.g. x=0 to 1000) are divided, such that each rotational and translational manipulation parameter at sub-manipulation x is multiplied by x/1000. Next the system calculates each of these sub-manipulations to find RP′(n,x)=(x′ n,x ,y′ n,x ,z′ n,x ). Finally, an approximation of the distance over which RP(n) moves over the entire correction is calculated: 
     
       
         
           
             
               
                 
                   
                     distance 
                     ⁡ 
                     
                       ( 
                       n 
                       ) 
                     
                   
                   = 
                   
                     
                       ∑ 
                       
                         x 
                         = 
                         0 
                       
                       999 
                     
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     
                       
                         
                           
                             ( 
                             
                               
                                 x 
                                 
                                   n 
                                   , 
                                   x 
                                 
                                 ′ 
                               
                               - 
                               
                                 x 
                                 
                                   n 
                                   , 
                                   
                                     x 
                                     + 
                                     1 
                                   
                                 
                                 ′ 
                               
                             
                             ) 
                           
                           2 
                         
                         + 
                         
                           
                             ( 
                             
                               
                                 y 
                                 
                                   n 
                                   , 
                                   x 
                                 
                                 ′ 
                               
                               - 
                               
                                 y 
                                 
                                   x 
                                   , 
                                   
                                     n 
                                     + 
                                     1 
                                   
                                 
                                 ′ 
                               
                             
                             ) 
                           
                           2 
                         
                         + 
                         
                           
                             ( 
                             
                               
                                 z 
                                 
                                   n 
                                   , 
                                   x 
                                 
                                 ′ 
                               
                               - 
                               
                                 z 
                                 
                                   n 
                                   , 
                                   
                                     x 
                                     + 
                                     1 
                                   
                                 
                                 ′ 
                               
                             
                             ) 
                           
                           2 
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   52 
                   ) 
                 
               
             
           
         
       
     
     The system can calculate the number of days required to complete a manipulation by dividing the user defined manipulation rate (rate(n)) for a given rate point (rate(n)); 
     
       
         
           
             
               
                 
                   
                     number_of 
                     ⁢ 
                     _days 
                     ⁢ 
                     
                       ( 
                       n 
                       ) 
                     
                   
                   = 
                   
                     
                       distance 
                       ⁡ 
                       
                         ( 
                         n 
                         ) 
                       
                     
                     
                       rate 
                       ⁡ 
                       
                         ( 
                         n 
                         ) 
                       
                     
                   
                 
               
               
                 
                   ( 
                   53 
                   ) 
                 
               
             
           
         
       
     
     Alternatively, if the user defines the number of days (number_of_days(n)), the rate of manipulation can be determined: 
     
       
         
           
             
               
                 
                   
                     rate 
                     ⁡ 
                     
                       ( 
                       n 
                       ) 
                     
                   
                   = 
                   
                     
                       distance 
                       ⁡ 
                       
                         ( 
                         n 
                         ) 
                       
                     
                     
                       number_of 
                       ⁢ 
                       _days 
                       ⁢ 
                       
                         ( 
                         n 
                         ) 
                       
                     
                   
                 
               
               
                 
                   ( 
                   54 
                   ) 
                 
               
             
           
         
       
     
     Finally, the total number of days for a given manipulation is chosen as the maximum value of number_of_days(n) for the number (n) of defined rate points. 
     Once the number of days (number_of_days) over which a ring manipulation will occur is known, the manipulation of the ring for each day is defined by dividing each of three rotational and three translational components of the total ring manipulation desired by the number of days and calculating the sub-manipulations of the ring for each day, as described in the section on manipulation of ring parameters above. In response to the bone correction data user input, the system can generate a graphical simulation of the bone deformity correction treatment superimposed on the at least one digital medical image.  FIGS.  59 A-F  show screen shots of the SET CORRECTION tab  700  illustrating a manipulation with a rate point  760  on days 0, 2, 4, 6, and 8 of 8. 
     Correction Prescription Tab 
       FIG.  44    shows a screen shot of the “CORRECTION PRESCRIPTION” tab  800 . Based upon the correction data entered by the user, the system then generates a prescription in the form of a bone deformity correction plan. The CORRECTION PRESCRIPTION tab displays the prescription for performing the correction. The prescription is a list of strut lengths  810  that the patient or a healthcare professional should apply for each correction day  812 . There are 6 strut lengths per day, one for each strut on the ring. A different prescription will be generated for each deformity pair. Advantageously, the system allows calculating, according to the bone correction plan, for various strut sizes corresponding numbers of strut replacements, to allow a selection of strut sizes that minimize the number of strut replacements on the external fixator (not shown). 
     In one embodiment, one special case involving drawing rings and struts on a display involves templating a pair of rings and set of struts to an anatomic segment, with a given ring manipulation. The goal of templating is to pre-operatively determine a set of strut lengths that fits the patient&#39;s anatomy, as well as potentially to minimize the number of times a strut has to be exchanged during the manipulation process. Real-life struts have a prescribed range over which they function. During a manipulation, the struts may have to physically be exchanged for a strut with the next longer or shorter prescribed range. In practice, the user would like to minimize the number of these strut exchanges that need to be performed. 
     Rings and struts can be drawn on images of anatomic segments and manipulated as described above, allowing the user to approximate the location for the rings. This defines a set of ring placement parameters such as the ring&#39;s center point (P c =(x c ,y c ,z c )), the tilt relative to the XY (θ XY ) and ZY (θ ZY ) planes, and the azimuthal rotation azimuthal rotation (ϕ). Alternatively, the program can define a set of initial parameters based on the location of anatomic segments. 
     The program can find the position and rotation of the rings that would minimize the number of strut exchanges required by the user by varying these parameters over a defined range and figuring the number of times a strut would need to be exchanged for a given set of parameters. 
     For example, the program could vary y c  by Δy over a range n=−N to N (N and Δy can be user or programmatically defined). 
     
       
         
           
             
               
                 
                   
                     
                       y 
                       c 
                     
                     ⁡ 
                     
                       ( 
                       n 
                       ) 
                     
                   
                   = 
                   
                     
                       y 
                       c 
                     
                     + 
                     
                       
                         n 
                         · 
                         Δ 
                       
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       y 
                     
                   
                 
               
               
                 
                   ( 
                   55 
                   ) 
                 
               
             
             
               
                 
                   
                     
                       P 
                       c 
                     
                     ⁡ 
                     
                       ( 
                       n 
                       ) 
                     
                   
                   = 
                   
                     ( 
                     
                       
                         x 
                         c 
                       
                       , 
                       
                         
                           y 
                           v 
                         
                         ⁡ 
                         
                           ( 
                           n 
                           ) 
                         
                       
                       , 
                       
                         z 
                         c 
                       
                     
                     ) 
                   
                 
               
               
                 
                   ( 
                   56 
                   ) 
                 
               
             
           
         
       
     
     The program calculates the number of strut exchanges that would be required for the given ring manipulation for the set of ring parameters defined by each n. The n value that returns the minimal number of strut exchanges is termed n min . Finally, the ring parameters and strut lengths defined by n=n min  are calculated and returned to the user. 
     This prescription for a bone deformity correction will become part of the patient record to be saved as part of the “ID, SESSIONS, &amp; IMPORT IMAGES” tab. In the case where the patient has already undergone an osteotomy and has had an external fixator affixed to the bone, the patient may receive a hard copy, email, or other type of electronic communication of the prescription of strut lengths. 
     Exemplary Methods 
       FIGS.  45 A-J  illustrate a computer-implemented method, along with its alternative embodiments, to generate a graphical display of a ring superimposed on a digital medical image, according to some embodiments of the present invention. As shown in  FIG.  45 A , the computer-implemented method includes instructions to generate a display of a tiltable ellipse superimposed on a graphical display of at least one digital medical image  1000 , receive ring rotation user input controlling an axial rotation and an azimuthal rotation of the graphical representation of the ring superimposed on the digital medical image(s)  1002 , and generate a display of the resulting graphical representation of the graphical representation of the ring superimposed on the digital medical image(s)  1004 . 
     In other embodiments, the computer-implemented method further includes instructions to receive ring identification user input identifying at least two points defining the tiltable ellipse  1006 , as shown in  FIG.  45 B , and calculate a 3D position of the resulting graphical representation of the ring reflecting the axial and azimuthal rotation of the ring  1008 , as shown in  FIG.  45 C . In an alternative embodiment shown in  FIG.  45 D , the computer-implemented method further includes instructions to generate a display of a tiltable ellipse superimposed on a graphical display of at least two digital medical images  1010 , receive ring rotation user input controlling an axial rotation and an azimuthal rotation of the graphical representation of the ring superimposed on the digital medical images  1002 , and generate a display of the resulting graphical representation of the ring superimposed on the digital medical images  1004 . 
     In other alternative embodiments, the computer-implemented method further includes instructions to control the axial rotation and the azimuthal rotation of the graphical representation of the ring superimposed on a first digital medical image of the digital medical images according to ring rotation user input entered along a second digital medical image of the two digital medical images  1012 , as shown in  FIG.  45 E , receive ring translation user input entered graphically on the display of the tiltable ellipse to control a translation of the ring  1014 , as shown in  FIG.  45 F , and calculate a 3D position of each ring of the external fixator relative to the anatomic structure on each of the digital medical images  1018 , as shown in  FIG.  45 G . In other alternative embodiments, the computer-implemented method further includes instructions to receive ring translation user input controlling a translation of the graphical representation of the ring superimposed on the at least one digital medical image  1020 , as shown in  FIG.  45 H , receive strut position user input identifying 3D positions for the plurality of struts of the external fixator  1022 , as shown in  FIG.  45 I , and identify a 3D position of each strut of the external fixator according to the strut position user input  1024  and control an axial rotation and an azimuthal rotation of a graphical representation of the plurality of struts  1026 , as shown in  FIG.  45 J . 
     In some embodiments, generating a graphical display of the resulting graphical representation of the ring superimposed on the digital medical images  1004  further includes instructions to receive bone correction data user input comprising a graphical input defining one or more 3D biological rate-limiting points for a bone deformity correction treatment  1028  and calculate a 3D bone correction speed and/or a number of days for the bone deformity correction treatment  1030 , as shown in  FIG.  46 A , and calculate a 3D bone correction speed and/or a number of days for the bone deformity correction treatment  1030 , as shown in  FIG.  46 B . In some embodiments, generating a graphical display of the resulting graphical representation of the ring superimposed on the digital medical images  1004  further includes instructions to receive bone correction data user input comprising a 3D bone correction speed and/or a number of days for a bone deformity correction treatment to be performed using the external fixator  1034  and generate a bone deformity correction plan specifying for each strut a daily sequence of strut lengths to be used in the bone deformity correction treatment  1036 , as shown in  FIG.  46 C . 
     In some embodiments, generating a bone deformity correction plan specifying for each strut a daily sequence of strut lengths to be used in the bone deformity correction treatment  1036  further includes instructions to determine a preferred size for at least one strut according to the bone deformity correction plan to minimize a number of strut replacements for the external fixator over the bone deformity correction treatment  1038 , as shown in  FIG.  46 D , calculate for various strut sizes corresponding numbers of strut replacements, to allow a selection of strut sizes that minimize the number of strut replacements on the external fixator  1040 , as shown in  FIG.  46 E , and generate a graphical simulation of the bone deformity correction treatment superimposed on the digital medical image  1042 , as shown in  FIG.  46 F . 
     Discussion 
     Exemplary systems and methods as described above allow accurate and user-friendly extraction of fixator ring and/or strut 3D position information using one or more radiographs of a patient&#39;s anatomy, and allow simulating ring and/or strut position sequences over a course of treatment overlaid on one or more radiographs. Exemplary systems and methods as described above, in particular methods relying on user-controlled axial and azimuthal rotations of fixator rings, can be significantly more convenient than fully-manual, pen-and-paper methods, and at the same time do not rely on potentially-inaccurate edge detection techniques or other fully-automatic techniques that may exhibit limited accuracy in visually-crowded environments. Exemplary human-controlled, computer-assisted methods as described above leverage human pattern-recognition capabilities to identify ring positions overlaid on radiographs, in conjunction with superior computer position-computation capabilities to determine 3D ring positions and corresponding courses of treatment once desired ring locations on one or more radiographs have been identified by a human. Such desired ring locations may be locations that match existing fixator structures already attached to the patient, or simulated locations for a fixator to be attached to the patient. 
     Exemplary systems and methods as described above do not necessarily require that fixator rings be orthogonal to corresponding bone segments, or that AP and lateral x-rays be perfectly mutually orthogonal. Planning and simulating sequential bone and ring manipulation sequences (i.e. concatenating multiple courses of treatment into one simulation) can allow improving clinical outcomes. Visual (graphical) simulation of a course of treatment overlaid on patient radiographs can provide ready confirmation that the prescribed course of treatment matches the patient&#39;s anatomy. Exemplary templating methods as described above allow preparing accurate ring/strut configurations pre-operatively and thus allow reducing the amount of time needed during surgery. In addition, minimizing the number of strut exchanges (replacements) for a given course of treatment allows savings in physician time and allows reducing patient suffering or discomfort. 
     It will be clear to one skilled in the art that the above embodiments may be altered in many ways without departing from the scope of the invention. Accordingly, the scope of the invention should be determined by the following claims and their legal equivalents.