in one embodiment of the invention , software aids a user , such as a physician , surgeon , or other medical personnel , in planning and carrying out the correction of a bone deformity using a limb reconstruction frame using a web application , for example . as shown in fig1 , upon starting the application , the user is presented with a login screen 102 . the login screen 102 preferably includes a username field 104 and password field 106 in which the user enters , respectively , a username and password to gain further access to the application . this step of authentication may , for example , help maintain compliance with patient privacy regulations . in cases where a first time user tries to gain further access to the application , a new user account will have to be created . as shown in fig2 , upon logging in , the user is taken to the home page 110 ( fig2 ). from the home page 110 , the user has the option of starting a new case by choosing the new case option 112 , or choosing an existing case by , for example , searching for an existing case using keywords or case number identifiers or choosing from a list of existing cases 114 . each listed case includes summary information of the case , such as case numbers , patient names , relevant anatomy to be corrected , and dates that the case was created and / or last modified . the initial list of displayed existing cases 114 can , for example , display the most recent cases viewed by the user . for existing cases , the user also has the option to share the case with another user . for example , a physician can choose the case sharing option to send the case information to another physician using the software . this might be useful , for example , if the first physician wants advice from a second physician on the case , or if the first physician believes his case will be helpful to a second physician handling a similar case . a user chooses the new case option for a patient whose information has not yet been entered into the software . when a user selects the new case option 112 , the user is brought to a case details screen 120 ( fig3 ). at the case details screen 120 , the user has the option of entering , viewing , or modifying patient details such as the patient &# 39 ; s name , gender , race , date of birth , anatomy relevant to the case , and notes as the user sees fit . the user is presented with a preview of uploaded x - ray images 201 if any have been uploaded . if no x - ray images 201 have been uploaded , the user can upload images , for example one x - ray image of the deformed bone in the anterior - posterior (“ ap ”) plane and one x - ray image of the deformed bone in the lateral plane . these x - ray images 201 , if used , may help the user to define the bone deformity , described more fully below . to upload an x - ray image 201 , the user chooses the “ choose file ” option and is able to import the desired image file from a memory device , such as a flash drive . prior to uploading , the user also provides details relating to the image 201 , such as the view ( e . g . lateral plane ) in which the image was taken . upon selecting the anatomy within the patient details ( e . g . right or left side , femur , tibia , humerus , radius ), the user can proceed to define the deformity . a deformity definition screen 200 ( fig4 - 5 ) within the application presents a model bone 202 . the deformity definition screen 200 includes an image manipulation function and a deformity definition function . in the image manipulation function , shown in fig4 , the application presents a model bone 202 overlaid on an x - ray image 201 previously uploaded on the case details screen 120 . the model bone 202 is chosen based on input of the relevant anatomy ( e . g . left femur ) from the case details screen 120 , and is initially presented in a non - deformed state . the model bone 202 is presented in the same plane which the user defined for the x - ray image 201 . the image manipulation function allows the user to manipulate the x - ray image 201 , for example by rotating , zooming , or repositioning the image . the user can also manipulate the transparency of the x - ray image 201 as desired for the best view of the model bone 202 in relation to the x - ray image . the user manipulates the x - ray image 201 with the goal of generally matching the size and position of the bone shown in the x - ray image with the model bone 202 displayed on the deformity definition screen 200 . the image 201 will often require manipulation because x - ray images , along with the actual bones being imaged , may vary in size and the initial position of the uploaded image may not align with the position of the model bone 202 . once the user is satisfied that the model bone 202 generally corresponds to the size and position of the x - ray image 201 , the user can choose to begin the deformity definition function . this step can be repeated for each x - ray image 201 . for example , if a user uploads one x - ray image 201 in each of the ap and lateral planes , two separate image manipulations could be performed . the deformity definition function of the deformity definition screen 200 is illustrated in fig5 . the manipulated x - ray image 201 is displayed in the background with the model bone 202 in the foreground . the model bone 202 includes a plurality of portions , including a proximal portion 204 and a distal portion 206 . a panel , to the right of the model bone 202 as illustrated in fig5 , allows the user to enter parameters relating to geometry of the deformed bone to modify the bone model 202 to approximate the actual bone deformity . to start , the user designates a reference bone fragment , for example either the proximal portion 204 or distal portion 206 . the reference fragment , as depicted in fig5 , remains aligned with the vertical axis during manipulation of the bone model 202 , with the non - reference fragment changing position , with respect to the reference fragment , based on user input . the user inputs values for translation and angulation of the non - reference fragment with respect to the reference fragment in one or more of the ap plane , the lateral plane , and the axial plane . the user can input this data by , for example , entering the numerical value of translation ( for example in millimeters ) and / or angulation ( for example in degrees ) of the non - reference fragment with respect to the reference fragment in any of the desired planes . the user may alternately or additionally change the translation and / or angulation values using a slide - bar function in which sliding a bar in one direction decreases the value of the relevant parameter while sliding the bar in the other direction increases the value . the user can also input a value for the deformity apex and the position of the osteotomy along the length of the model bone 202 . in fig5 , the deformity apex would be the point at which a line through the center of the proximal portion 204 intersects with the distal portion 206 . a change to the deformity apex value would be visualized in fig5 as a change in the location at which the angled deformity of the proximal portion 204 is seen . the osteotomy plane , as seen in fig5 , is the location of the separation between the proximal portion 204 and the distal portion 206 . as the user enters or changes the above - mentioned values , the graphical representation of the non - reference bone portion will change to reflect the new values . the change in the position of the model bone 202 against the backdrop of the x - ray image 201 allows the user to obtain visual confirmation that the parameters applied to the model bone accurately represent the parameters of the deformed bone . this step may be performed using more than one x - ray image 201 , or without any x - ray images , as described below . when using multiple x - ray images 201 , each can be viewed while setting values for the deformity . for example , a user may view the model bone 202 against an x - ray image 201 in the ap plane while setting values for the deformity in the ap plane , and then switch to a view of the model bone 202 against an x - ray image 201 in the lateral plane while setting values for the deformity in the lateral plane . x - ray images 201 are not a necessary part of the deformity definition step . for example , in addition or as an alternative to using x - ray images 201 , the user can perform the same model bone 202 manipulations without the backdrop of an x - ray image . as seen in fig6 , a deformity definition screen 200 presents a model bone 202 simultaneously in the ap , lateral , and axial planes , as well as a perspective view . one or more combinations of views , including additional views not specifically identified herein , may be used and is largely a matter of design choice . similar to the process described with reference to fig5 , the user enters values corresponding to the position and orientation of the non - reference fragment ( distal portion 206 as illustrated in fig6 ) in the ap plane , the lateral plane , and the axial plane . the use may also enter or change a value for the osteotomy plane and the deformity apex ( deformity apex option not illustrated in fig6 ), largely in the same manner as described with reference to fig5 . for each value entered , the user can select a corresponding direction from a drop down menu . for example , the user can enter a 20 mm translation in the ap plane , and assign that value either a medial or lateral direction . alternatively , the value can be a positive or negative value , with one direction assigned to positive values and the opposite direction assigned to negative values ( e . g . 20 mm corresponding to a 20 mm medial translation and − 20 mm corresponding to a 20 mm lateral translation ). similar to the method described with reference to fig5 , the user can directly enter numerical values based on experience or previous measurements of the bone deformity . in addition or as an alternative , the user can change the position of the slide bars corresponding to the non - reference bone parameters to reach a final value that accurately represents the geometry of the bone deformity . once the user is satisfied that the model bone 202 is an accurate representation of the deformed bone , the user can proceed to the first ring configuration screen 250 ( fig7 ). the first ring configuration screen 250 allows the user to choose to continue in either a pre - operative (“ pre - op ”) or post - operative (“ post - op ”) mode by selecting the respective radio button . generally speaking , the pre - op mode is used prior to the surgical fixation of the limb reconstruction device to the deformed bone . the post - op mode is to be used after the limb reconstruction device , with associated rings and struts , has already been affixed to the patient . in a single case , the pre - op mode can be used alone , the post - op mode can be used alone , or each mode can be used prior to and following surgery , respectively . if the pre - op mode is selected , the user can continue to a pre - op ring configuration screen 300 ( fig8 ). at this point , the user inputs the size of the desired rings , including a reference ring 305 and a moving ring 310 . for example , a user may be able to choose between a 155 mm , 180 mm , or 210 mm ring . the user may also be able to choose the type of ring , such as a full ring or partial ring . different types of rings are known in the art and the inclusion of different rings as options in the software is largely a matter of design choice . the rings 305 , 310 are displayed along with the model bone 202 on the screen , preferably in an ap view , a lateral view , and an axial view . additional views , such as a perspective view , may be included . the position and orientation of the proximal portion 204 and distal portion 206 of the model bone 202 are based on the input received during the deformity definition stage . once a size and / or type of ring is selected for the reference ring , it is displayed perpendicular to the reference fragment with a longitudinal axis of the reference fragment extending through the center of the reference ring . similarly , once a size and / or type of ring is selected for the moving ring , it is displayed perpendicular to the non - reference fragment with a longitudinal axis of the non - reference fragment extending through the center of the moving ring . similar to the deformity definition screen 200 , the user enters position and orientation values for the reference ring 305 and the moving ring 310 . for the rings , the user can directly enter the values , or move a slide - bar corresponding to the values to scroll through a range of values . because this is the pre - op mode and no fixation device has yet been attached to the patient , the user chooses the ring sizes , positions and orientations that he believes will be effective for the correction based , for example , on his experience and knowledge . as the values are entered , or as the slide - bar is moved , the graphical representation of the rings changes to reflect the new values . for the reference ring 305 , the position values include an ap offset , a lateral offset , an axial offset , and an axial angle . the moving ring 310 includes these values , and additionally includes an ap angle and a lateral angle . once the user is satisfied that the reference ring 305 and moving ring 310 are at locations on the model bone 202 representative of where the actual rings should be located on the patient &# 39 ; s deformed bone , the user can proceed to the first strut configuration screen 350 . the software may also provide maximum and minimum values for the placement and orientation of the reference ring 305 and moving ring 310 , based , for example , on the feasibility of actually achieving those values in the operating room . these limits would help ensure that the planned values for the ring positions input by the user can likely be achieved during surgery on the patient . the first strut configuration screen 350 allows the user to initiate an automatic calculation of possible strut combinations to connect the reference ring 305 to the moving ring 310 ( fig9 ). once the calculation is complete , the user is presented with the second strut configuration screen 400 that displays at least one possible strut combination , and preferably more than one ( fig1 ). the possible strut combinations 410 are presented in a table with a description of each strut in a particular combination . the model bone 202 and rings 305 , 310 are displayed in an ap view , a lateral view and an axial view . additional views such as a perspective view can be included . this display is based on values entered during the deformity definition and ring configuration steps . additionally , the struts of a particular strut combination 410 are displayed with the model bone and rings . each strut combination 410 includes a radio button . when the user selects a particular strut combination 410 by selecting the corresponding radio button , the views update to show that particular strut combination . an optimal strut combination is highlighted among all the strut combinations 410 to suggest to the user a particularly desired combination to select . among other factors , the optimal strut combination is based on the combination that will require the least amount of strut change - outs during the correction procedure . in the pre - op mode , when a particular strut combination 410 is selected , the orientation of each strut , including strut length , strut angle , and base angle are displayed . after selecting a desired strut combination 410 , the user may optionally choose to over - constrain the frame with an additional strut ( not illustrated ). for example , in a fixation frame that uses three struts , a fourth strut could be added after the three - strut combination is chosen . the fourth strut over - constrains the fixation frame by increasing stiffness and reducing play in the frame . the length , angle , and position of the additional strut is provided by the software once the option for the additional strut is chosen . once the desired strut combination is chosen , and any additional desired struts are chosen , the user proceeds to a limiting anatomical factor (“ laf ”) input screen 450 . the laf input screen 450 ( fig1 ) allows a user to input a limiting anatomical factor (“ laf ”) and to calculate a minimum amount of time for the correction process . the laf is a reference point to which a user may want to set a maximum distraction rate or velocity . for example , if a segment of bone is to be moved a certain distance per day , surrounding tissues will also be moved at the same rate . a user may want to limit the maximum rate of movement of the bone or surrounding structures . also of note is that certain portions of bone or tissue may move at different rates for a given distraction rate . for example , as the distal portion of the bone illustrated in fig1 is moved to align with the proximal portion , a point on the distal portion of the bone near the osteotomy plane will move at a lower rate than a point on the distal portion of the bone farther away from the osteotomy plane because of the angle . the laf may default to the center of a moving fragment , one of the ends of the moving fragment , or anywhere else desired . if a user desires a laf location other than the default location , he may change the location by changing the ap , lateral , and axial offset values . by setting the laf location , a user may ensure that the maximum distraction rate applies to the laf location . this ensures that a user may limit the maximum rate of movement of a particular portion of the bone or surrounding tissue . the views of the second strut configuration screen 400 are displayed again on the laf input screen 450 . the user inputs laf values for the ap offset , lateral offset , and axial offset . the user also enters a maximum distraction rate . the maximum distraction rate may represent , for example , the maximum , safest , or optimal amount of millimeters that the length of a strut can increase or decrease in a day , for example 1 mm / day . based on the laf input values and the maximum distraction rate , the user can initiate a calculation of the minimum amount of time it will take for the correction of the patient &# 39 ; s deformed bone using the ring and strut configurations chosen in the previous steps . if the user is satisfied with the minimum correction time , he can move to the next step of generating the correction plan . if he is not satisfied , he can override the minimum correction time and enter a different value , and then continue to the step of generating the correction plan . for example , if the minimum correction time is initially output as 10 days , but the user ( or a separate physician ) will not be able to see the patient again for 14 days , the user may override the correction time to a value of 14 days . this potentially would allow for a more gradual correction plan , which may be of benefit . on the correction plan generation screen 500 , the user enters the date on which the user or patient will begin adjusting the fixation mechanism according to the correction plan . once entered , the user commands the computer to generate a correction plan ( fig1 ). once calculated , the correction plan 510 is displayed on the correction screen 500 ( fig1 ). the correction plan 510 can include , for example , the position and angle of each strut of the limb reconstruction frame for each day of the correction , along with the date and day number ( e . g . first day , second day ) of the correction plan 510 . when the software is determining the deformity correction plan 510 , an angle of the proximal portion of the bone 204 in relation to the distal portion of the bone 206 is utilized . in one embodiment , the software determines this angle based on the midlines of the two bone portions 204 , 206 . in another embodiment , the user may input the diameter of the bone . with the value of diameter of the bone , the software can base the value of the angle on the edges of the two bone portions 204 , 206 . utilizing the outer edges of the bone portions 204 , 206 provides for a more accurate correction plan 510 . the correction plan 510 may call for changing out one strut for a strut of a larger or smaller size during the period of correction . for example , a relatively small strut may be initially utilized between the reference and moving rings 305 , 310 . the angle and length of that small strut will be adjusted over time . at a certain point , the correction plan 510 may require to replace the relatively small strut with a relatively large strut because , for example , the relatively small strut may be close to reaching its maximum length . the software may provide an option to the user of changing out the relatively small strut or , instead , changing the point of connection of the small strut . by changing the point or points of connection of a strut , which may for example be a hole in the reference ring 305 and a hole in the moving ring 310 , the length and position limitations of the strut are overcome . this option may be provided alternatively to changing out struts , or in addition , and applies to struts of all sizes . the correction plan 510 may also show a relationship between positions of the struts and discrete user or patient actions . for example , if the correction plan 510 calls for a strut to be lengthened by 1 millimeter on the first day , the correction plan may indicate that the user or patient should increase the length of that strut four separate times , for example by 0 . 25 millimeters in the morning , 0 . 25 millimeters at noon , 0 . 25 millimeters in the evening and another 0 . 25 millimeters at night . besides use as an instructional tool , the correction plan 510 also aids a physician or surgeon in monitoring the progress of the correction of the bone deformity , for example by checking at periodic intervals that the struts of the fixation frame are in the proper position as called for by the correction plan . in addition to the correction plan 510 , the correction screen 500 may also include a simulation 520 of the correction . the user can view the simulation 520 to see what the progress of the correction should look like . the simulation 520 allows the user to see what the model bone , rings and struts will look like in one or more views on each day of the correction plan 510 or with each discrete correction made as called for by the correction plan . this helps the user ensure that the correction plan 510 is appropriate for the given case , and further aids the user in determining whether the correction is progressing according to the plan , as the user can compare the model of what the bone and fixation frame should look like to what the actual patient &# 39 ; s bone and fixation frame look like on a given day . the user has the option of viewing a report of all the pertinent details of a specific case in the study report screen 600 , as seen in fig1 . the study report screen 600 is a comprehensive report of the case and can include information such as case details , parameter of the deformity definition , parameters for laf input , parameters for the ring and strut configurations , and the complete correction plan , including the schedule of when one or more struts should be changed out for different struts , if necessary . the user also has access to a smart tool screen 700 ( fig1 ). the smart tool screen 700 displays pertinent data for a smart tool plan and provides an option to launch a smart tool client to interface with the smart tool . generally , a smart tool may be used in conjunction with the fixation frame and software described herein . the smart tool is an automated tool that a patient uses to perform the corrective fixation frame alterations described by the correction plan . for example , the smart tool may include a motor that rotates screws of the struts to lengthen the struts based on instructions downloaded from the software , which instructions correspond to the correction plan . the smart tool may limit the patient from changing the lengths of the struts in a manner other than described in the correction plan , and may communicate with the software and the case physician to reflect whether , or to what degree , the patient is following the correction plan . such a smart tool is described more fully in u . s . application ser . no . 13 / 167 , 101 , the entire contents of which are hereby incorporated by reference herein . as mentioned above , the application can be used in a post - op mode in addition or as an alternative to the pre - op mode . this mode can be used once the patient has already undergone surgery to attach the fixation frame to the deformed bone . the post - op mode can be used as an alternative to the pre - op mode , for example in cases in which time is limited and surgery must be performed without the benefit of the planning provided in the pre - op mode described above . contrariwise , the pre - op mode may be especially useful in cases of a congenital deformity or in cases in which a deformity is stable , where planning time is available without risking the health of the patient . in practice , the post - op mode should always be used , regardless of whether the pre - op mode is used . even if the pre - op mode is used , a surgeon is likely to desire to confirm that the placement of rings and struts in surgery actually matches the pre - op plan . in the post - op mode , the steps described above with reference to the login screen 102 , home page 110 , case details screen 120 , and deformity definition screen 200 are the same ( fig1 - 6 ). at the first ring configuration screen 250 , the user would choose the post - op mode instead of the pre - op mode to continue in the post - op mode . after selecting the post - op mode , the user proceeds to a post - op ring configuration screen 800 ( fig1 ). the user enters the sizes of both the reference ring 305 and the moving ring 310 as well as the position and orientation of the reference ring . these values are based on the sizes of the actual rings attached to the patient . for the reference ring , the user follows the same procedure as described for the pre - op ring configuration screen 300 , either entering ring position parameters directly into the corresponding fields or by using a slide - bar to set the values . the user does not need to enter the positions of the moving ring 310 , however , as this will be automatically determined during the next stages based on the positions of the struts . the user proceeds to the post - op strut configuration screen 900 to enter the sizes and positions of the struts of the fixation frame attached to the patient during surgery ( fig1 ). the input values include the size of each strut , for example small , standard or large , the length of each strut , and the angle of each strut . the user may also have the option to enter the position along each ring that each strut is attached . for example , each ring may contain a plurality of through - holes for attachment of the struts , and each strut may be attached at recommended , predetermined through holes . these recommended , predetermined attachment through - holes are set as default attachment points in the software . however , if the physician is unable or unwilling to use the recommended , predetermined locations for strut attachment , he has the option to attach the struts at any other through - hole and the software can accommodate this modification . again , these values are based on the actual fixation frame attached to the patient during surgery . once the values are entered , the user can command the application to calculate the position of the moving ring 310 based on the position of the reference ring 305 and the struts . once the moving ring position is calculated , the position and orientation fields for the ap , lateral , and axial axes populate with the calculated values . once calculated , views of the fixation frame and model bone , for example ap , lateral , axial and perspective views , also update to reflect the calculated position and orientation of the moving ring . this provides additional confirmation to the surgeon that the model accurately represents the fixation frame of the case . the remainder of the process from this point is the same as described with reference to the pre - op mode ( fig1 - 15 ). the user advances through the laf input screen 450 by entering laf values and a minimum distraction rate to calculate a minimum correction time . the user then proceeds to the correction plan generation screen 500 , enters the start date for the correction , and initiates the generation of a correction plan . as described with reference to the pre - op mode , the correction plan 510 and a simulation are then displayed on the correction screen 500 . again , the user can view a study report in the study report screen 600 and interface with a smart tool using the smart tool screen 700 . while the above description relates to creating a new case , the user may choose to open an existing case in the software if one exists . after logging in , the user can choose an existing case by , for example , searching for an existing case or choosing from a list of existing cases 114 ( fig2 ). after opening the existing case , the user is taken to an existing case screen 1000 ( fig1 ) that shows patient details and the existing cases for the patient . from this screen , the user can choose to open a particular study of interest , create a new case for the patient , or view a report of the case summary . if the user opens the existing case , he is able to review or edit the case using the procedures described above . although the invention herein has been described with reference to particular embodiments , it is to be understood that these embodiments are merely illustrative of the principles and applications of the present invention . it is therefore to be understood that numerous modifications may be made to the illustrative embodiments and that other arrangements may be devised without departing from the spirit and scope of the present invention as defined by the appended claims .
the present disclosure relates to software used in planning the correction of bone deformities preoperatively or postoperatively , and in particular relates to virtually manipulating rings and struts of an external fixation frame in order to plan the steps for making a desired correction to two or more bone portions of a patient . the software can be used prior to surgery , allowing a user to virtually define a bone deformity , and virtually add and manipulate fixation rings and struts to the bone deformity . based on the virtual manipulations , a correction plan can be generated that describes length adjustments that should be made to the plurality of model struts over a period of time to correct the bone deformity . the software can also be used after surgical fixation of the fixation frame and struts to the deformed bone .