Data optimization method for dynamic cutting boundaries

The method generates patient-specific, dynamic cutting paths by clipping and ordering points along the 3D model's periphery, addressing the limitations of existing surgical planning technologies to create accurate and safe surgical plans.

JP2025503621APending Publication Date: 2025-02-04MONOGRAM ORTHOPEDICS INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024540958
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2022-01-06
Filing Date
2023-01-04
Publication Date
2025-02-04

AI Technical Summary

Technical Problem

Existing surgical planning technologies fail to generate accurate, patient-specific, and dynamic cutting paths for surgical operations, particularly in surgeries involving anatomical structures like bones, due to limitations in 3D rendering software and reliance on pre-defined implant boundaries that do not align with actual patient anatomy.

Method used

A method and system for generating a cutting path by clipping a 3D model of the patient's anatomical structure, defining a set of points along the outer periphery, and ordering them to create a continuous route that aligns with the patient's anatomical structure, allowing for real-time adjustment during surgery.

Benefits of technology

Enables the creation of patient-specific, dynamic cutting paths that accurately represent the anatomical structure, reducing the risk of damaging important tissues and ensuring precise surgical execution.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025503621000001_ABST
    Figure 2025503621000001_ABST
Patent Text Reader

Abstract

A method of data optimization of a dynamic cutting boundary includes acquiring a three-dimensional (3D) model of a patient's anatomy, acquiring a set of points based on clipping of the 3D model, determining an ordering of the set of points, and performing processing based on the determination. The 3D model includes a set of points defining a perimeter of the 3D model. The perimeter of the 3D model represents a perimeter of the patient's anatomy. The clipping forms at least one clipped surface of the 3D model that intersects with the perimeter of the 3D model. The set of points is on or adjacent to one or more intersections of the at least one clipped surface with the perimeter of the 3D model. The set of points forms a path along the perimeter of the 3D model and corresponds to points on the patient's anatomy. The ordering specifies an order of points of the set of points from a first point of the set of points to a last point of the set of points in a continuous path along the perimeter of the 3D model, from a current point in the ordering to each next point in the ordering being a next encounter point moving along the continuous path from the first point to the last point.
Need to check novelty before this filing date? Find Prior Art

Description

[Background technology]

[0001] Some surgical workflows require manipulation of rendered three-dimensional (3D) objects, specifically anatomical (e.g., bone) models of patients reconstructed from CT scans or other medical images. Such manipulations may include, by way of non-limiting example, planning resections corresponding to implant placement for joint reconstruction. For surgical robotic applications, it may be desirable to instruct the robot to perform these resections or to let the user perform them but limit their execution (e.g., the robot sets virtual boundaries). Summary of the Invention

[0002] Shortcomings of the prior art are overcome and additional advantages are provided by providing a computer-implemented method that includes obtaining a three-dimensional (3D) model of a patient's anatomy, obtaining a set of points based on clipping of the 3D model, determining an ordering of the set of points, and performing processing based on the determination. the 3D model includes a collection of points defining a perimeter of the 3D model, the perimeter of the 3D model representing a perimeter of the patient's anatomy; the clipping forms at least one clipped surface of the 3D model that intersects with the perimeter of the 3D model; the set of points are on or adjacent to one or more intersections of at least one clipped surface of the collection of points with the perimeter of the 3D model; the set of points form a path along the perimeter of the 3D model and correspond to points on the patient's anatomy; and the ordering specifies an order of points of the set of points from a first point in the set of points to a last point in the set of points in a continuous path along the perimeter of the 3D model, the order specifying a next encountered point in the set of points from a current point in the order to a next encountered point moving along the continuous path from the first point to the last point.

[0003] Further provided is a computer system including a memory and a processor in communication with the memory, the computer system configured to perform a method including acquiring a three-dimensional (3D) model of a patient's anatomy, acquiring a set of points based on clipping of the 3D model, determining an ordering of the set of points, and performing processing based on the determination. the 3D model includes a collection of points defining a perimeter of the 3D model, the perimeter of the 3D model representing a perimeter of the patient's anatomy; the clipping forms at least one clipped surface of the 3D model that intersects with the perimeter of the 3D model; the set of points are on or adjacent to one or more intersections of at least one clipped surface of the collection of points with the perimeter of the 3D model; the set of points form a path along the perimeter of the 3D model and correspond to points on the patient's anatomy; and the ordering specifies an order of points of the set of points from a first point in the set of points to a last point in the set of points in a continuous path along the perimeter of the 3D model, the order specifying a next encountered point in the set of points from a current point in the order to a next encountered point moving along the continuous path from the first point to the last point.

[0004] Further provided is a computer program product including a computer readable storage medium readable by a processing circuit and storing instructions for executing a method by the processing circuit, the method including acquiring a three-dimensional (3D) model of a patient's anatomy, acquiring a set of points based on clipping of the 3D model, determining an ordering of the set of points, and performing an operation based on the determination. the 3D model includes a collection of points defining a perimeter of the 3D model, the perimeter of the 3D model representing a perimeter of the patient's anatomy; the clipping forms at least one clipped surface of the 3D model that intersects with the perimeter of the 3D model; the set of points are on or adjacent to one or more intersections of at least one clipped surface of the collection of points with the perimeter of the 3D model; the set of points form a path along the perimeter of the 3D model and correspond to points on the patient's anatomy; and the ordering specifies an order of points of the set of points from a first point in the set of points to a last point in the set of points in a continuous path along the perimeter of the 3D model, the order specifying a next encountered point in the set of points from a current point in the order to a next encountered point moving along the continuous path from the first point to the last point.

[0005] In an embodiment, the acquired set of points includes points of the set of points where no ordering is specified in the order from the first point to the last point of the continuous path. In an embodiment, the acquired set of points is acquired without any particular order of the points. In an embodiment, the acquired set of points is acquired with an order showing two points of the set, between which there are one or more other points of the set along the perimeter of the 3D model, and between which there are one or more other points of the set along the perimeter of the 3D model, sequentially preceding, in the order, the one or more other points of the set. In an embodiment, determining the ordering of the set of points identifies a continuous path on the perimeter of the patient's anatomy that identifies a step-by-step traversal of the perimeter of the patient's anatomy in one direction.

[0006] In an embodiment, the method further comprises receiving from a user definitions of one or more clips to clip the 3D model. In an embodiment, the method further comprises obtaining definitions of one or more clips to clip the 3D model and clipping the 3D model with the one or more defined clips to determine the set of points. In an embodiment, the clipping is defined by one or more clips defined by a user.

[0007] In an embodiment, the set of points includes at least five points. In an embodiment, performing the process includes outputting an order of the set of points as, or to facilitate generation of, a cut path along the perimeter of the patient's anatomy. In an embodiment, further includes using the order of the set of points to define a virtual boundary for performing the surgical cut.

[0008] Additional features and advantages are realized through the concepts described herein.

[0009] The aspects described herein are particularly pointed out and distinctly claimed, and the objects, features, and advantages of the disclosure will be apparent from the detailed description herein when taken in conjunction with the accompanying drawings. [Brief description of the drawings]

[0010] [Figure 1] FIG. 1 shows an example of a flat surface of a patient's bone represented as a cross section of a three-dimensional (3D) model.

[0011] [Figure 2A] FIG. 2A shows the virtual boundaries and corresponding implants used in the conventional approach to pre-define the cutting plan.

[0012] [Figure 2B] FIG. 2B shows a planning screen for virtual implant placement.

[0013] [Figure 2C] FIG. 2C shows an example of a clip that may be required to remove bone to allow for proper fit of the implant.

[0014] [Diagram 3] FIG. 3 shows an example of a critical soft tissue that may be encountered during surgery that the cutting tool must avoid during cutting.

[0015] [Figure 4] Figure 4 shows a typical implant defect that completely covers the resected anatomical structure.

[0016] [Diagram 5] FIG. 5 shows an example of CT scan output generation.

[0017] [Figure 6] FIG. 6 shows an example of a 3D rendered model and the polygon mesh for its 3D representation.

[0018] [Figure 7] FIG. 7 shows an example of a continuous path around an object.

[0019] [Figure 8A]FIG. 8A conceptually illustrates an example of a misdetermined point ordering when clipping a model. [Figure 8B] FIG. 8B conceptually illustrates an example of a misdetermined point ordering when clipping a model.

[0020] [Figure 9] FIG. 9 illustrates an example of a computer system incorporating and using aspects described herein.

[0021] [Figure 10] FIG. 10 shows an example of an embodiment described herein. [Figure 11] FIG. 11 shows an example of an embodiment described herein. [Figure 12] FIG. 12 shows an example of an embodiment described herein. [Figure 13] FIG. 13 shows an example of an embodiment described herein. [Figure 14] FIG. 14 shows an example of an embodiment described herein. [Figure 15] FIG. 15 shows an example of an embodiment described herein. [Figure 16] FIG. 16 shows an example of an embodiment described herein. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0022] To command a robot (or other party) to perform or assist in a surgical incision, by way of non-limiting example, it is necessary to generate a cutting path (or "tool path") for a tool (e.g., a cutting instrument) to follow. A tool path represents a series of ordered coordinates that a tool (e.g., a cutting tool such as a sagittal saw) can move to perform a function such as cutting. Typically, the tool performs its intended task at or near each ordered coordinate on the tool path. The coordinates are ordered such that the cutting tool can start at a start point, cut to a series of successive points, then cut to a series of successive points, and so on to an end point (which may be the same or different from the start point), thereby forming a continuous path along the surface of the anatomical structure.

[0023] Described herein is an approach to cutting path boundary generation, for example, by sorting points on the boundary of a 3D model such that the sorted order provides useful data to a cutting path generation algorithm.

[0024] One approach to generating a tool path is to clip the 3D model to simulate the desired result after cutting and solve the cutting path required to obtain that result. As a non-limiting example, if the cutting tool is a sagittal saw with a planar saw blade extending distally from a drive mechanism that moves in a back and forth pattern with the blade oscillating in an aligned plane, the software can represent the cut as a series of planes that intersect with the 3D model. The resulting cross sections of the clipped model can be used to evaluate how the cutting tool (here the sagittal saw) should be controlled / commanded to produce such a result. In an example where a bone is cut to accommodate implant placement and the cutting tool is a sagittal saw, the desired result may be a flat surface represented as a cross section of the 3D model, as shown in FIG. 1. A series of clips may be desired to remove an anatomical structure (bone). For example, the desired resection may be performed using one or more separate planar clips. Additionally, the clips need not be planar, but may be curved, etc. Thus, the cutting path need not itself be a straight line, but may be a curve formed by two straight or curved lines that intersect / touch to form an abrupt change of direction at the apex.

[0025] There is often a clinical need to dynamically generate cutting paths. As a non-limiting example, CT scan images generally do not capture soft tissue structures such as ligaments, making pre-operative cutting planning difficult, e.g., avoiding soft tissue regions. Surgery may require manipulation of soft tissue, and the location of the resulting cut may differ from that originally expected. Alternatively, as a non-limiting example, a surgeon may realize during a trial after a planned cut has been performed that an anatomical structure (e.g., a knee) is improperly tensioned, necessitating a new cut that was not pre-planned. Additionally, the pre-planned cut area does not have information about the bone shape, which can only be obtained once an implant is virtually placed on the bone. In these situations, it may be desirable to seamlessly generate cutting paths during surgery to safely plan and execute unplanned cuts. Aspects described herein can be applied to order surface points of a model / anatomical structure to facilitate dynamic, real-time, accurate cutting path generation. Dynamic planning to address this situation may include, for example, defining clips, reordering surface points, creating cutting boundaries, and generating new cutting paths.

[0026] The current state of the art does not allow for dynamic generation of tool cutting paths in real time. Generic off-the-shelf cutting paths, or virtual boundaries (e.g., to prevent the cutting tool from damaging human tissue while cutting), are generated offline and associated with the specific make / model / SKU of the implant or other defined object to be used. Figure 2A shows an example of virtual boundaries (202, 204, 206, 208, 210, 212) corresponding to a selected implant (214). The boundaries are not patient-specific or dynamic, but are programmed offline. Figure 2B shows a planning screen for virtual implant placement. The surgeon can manipulate the position of the implants (220, 222, 224, 226, 228, 230) on one model as shown. Figure 2C shows an example of clips (240, 242, 244) required to remove bone to properly fit the implant 246. Specifically, a typical implant will not fit perfectly and some areas (240, 242, 244) adjacent to the implant 246 may also need to be clipped.

[0027] Figure 3 shows an example that may be encountered during surgery, showing important soft tissues that the cutting tool must avoid during cutting (in this example, the patellar tendon). The boundary protects the patient's anatomy by controlling the cutting tool's proximity to such structures. The real boundary represents the furthest bone edge where it is generally not desirable for the blade to cut. In the real case above, the boundary is determined from the surgeon's virtual placement of the implant on the bone model. The implant can, in theory, be of any shape. Since most implants are generic implants with incomplete coverage, it is usually best practice (with exceptions such as the medial side of partial knee arthroplasty) to remove bone "overlying" the implant-bone interface to prevent, for example, notching (e.g., notching of the anterior femoral cortex during total knee arthroplasty has been implicated as a cause of subsequent periprosthetic supracondylar femoral fractures). As a result, in clinical practice, the boundary is almost always the lateral bone surface.

[0028] A limitation of the current state of the art is that implants are poor approximations of real patient anatomy. For example, the implant perimeter does not represent real patient-specific bone boundaries. See Figure 4. Generic implants do not completely cover the resected bone, so using them to define the cutting path boundaries is suboptimal.

[0029] In practice, a common limitation of the above methods of using implants to define cutting path boundaries is the frequent occurrence of uncut bone regions (e.g., as in Figure 2C) that must be cut by hand after execution of the initial planned cut by the robot (or human). These "air balls" are frustrating for surgeons. Although it may be possible to correct the uncut regions by enlarging the cutting boundary, this increases the risk of damaging critical anatomical structures. Therefore, improved methods of generating patient-specific cutting path boundaries that are representative of the real anatomical structures are desired.

[0030] The challenge in creating dynamic cutting path boundaries relates to the way 3D shapes are rendered by image processing software. To digitally render an image on a computer, many 3D computer graphics and image processing software providers use a mesh of flat polyhedral shapes (such as triangles or other polygons) placed together to represent a 3D image. Graphics rendering software often adds color and texture to these polygons to give the final image a realistic appearance. Generally, the size and number of polygons used to represent a curvilinear object determines the smoothness and accuracy of that object. The smaller the polygons and the more numerous they are, the smoother and more realistic the object will appear to the viewer. Functionally, many of these rendering tools are designed for optimal 3D rendering, not data manipulation, such as for surgical planning. Figure 6 shows an example of a 3D rendered model of a head. 602 shows a front view of the head, 604 shows a front isometric view of the head, and 606 shows a close-up of the head area 608 at the bridge of the nose. The polygons used to render the head (triangles in this example) are clearly shown in 606. These are relatively small compared to the polygons used to render the head shown in 602.

[0031] More specifically, a problem with commercially available 3D image rendering software is that it is not suited for the data manipulation required in many surgical applications, specifically, as a non-limiting example, dynamically defining bone boundaries for cutting path generation algorithms. 3D rendering software does not have useful information when transforming 3D image data into two-dimensional (2D) space. Such a transformation may be desirable to define bone boundaries for cutting path generation algorithms that process a rendering of the bone (or other anatomical structure) to be resected to provide an accurate 2D cross-section of the bone at a plane of interest. This cross-section, and in particular its perimeter, may be important for clinical and other reasons, for example, to provide boundaries for cutting path generation decisions. It is not intuitive for 3D rendering software to provide a 2D rendering of a 3D object based on planes arbitrarily positioned through the 3D model.

[0032] A computed tomography (CT) scan (or other advanced image output) is one of the pre-operative inputs to an exemplary surgical workflow incorporating aspects described herein. Using CT images as an example, a series of 2D images are constructed into a 3D representation / model, with the CT environment capturing scan slices 502, as shown in Figure 5. Exemplary surgical planning software uses a polygon mesh to render the 3D object as described above.

[0033] According to one aspect of the cutting path boundary determination, conceptually the 3D model is clipped with one or more clips (e.g., planar in the examples described herein, but the clips need not be planar) to render the resected surface. Clipping with a plane (as an example) is similar to a planar cut with a sagittal saw. The perimeter of such a resected surface is the boundary or edge of the 3D model that represents the perimeter of the anatomical structure. This perimeter feature is important for generating the tool path.

[0034] Referring to the front view 602 of FIG. 6, the head is a 2D representation of a 3D object. Because this is a 2D representation, no depth information is captured when moving in a direction away from the current point on the surface of the head (e.g., horizontally left or right). For example, when moving horizontally around the perimeter of a 3D rendered model, the next ordered point, or "next point," may not be the closest surface point to the current point in the direction of interest. Because 3D rendering software displays 3D objects on a 2D plane (display), the next point in a particular direction may not be the next closest point in that direction on the perimeter. Image processing software prioritizes point ordering for rendering of 3D objects over manipulation of the boundaries of clipped models.

[0035] The corollary to this can be explained as follows: From the perspective of the viewer in Figure 6 (looking into the drawing at a perpendicular angle to the front of the 3D model), the next point may be a surface point close to the direction of interest from the current point, and we envision gradually pushing the edge of the plane into the front of the 3D model, starting with the initial contact at the bridge of the nose. The plane is flat and perpendicular to the model, and is pushed perpendicular to the model. This is an example of clipping the model with a plane.

[0036] As the plane is extruded towards the model, the edge of the plane will first touch the nose at some initial point, the next point of the model that the plane touches as it moves through the model may be to the right of the nose, the next to the left of the nose, etc. In other words, the further the plane extends into the image, the more points that define the model it will encounter on either side of the starting point.

[0037] Referring to FIG. 7, a model 702 is shown with a continuous path around the perimeter of the object. The continuous path 704 in this example goes all the way around the object, but the continuous path need not extend all the way around the object. The path 704 is important in that it identifies the perimeter / boundary points of the model that are on (or adjacent, e.g., within some threshold distance) a plane if the plane intersects with the model to define a clip. The path 704 can also draw a cutting path around the perimeter of the object. A surgeon can cut the outer surface of the object along this path, for example to perform a resection. To find the exact (or at least closest) point on the model that is on that path, a virtual "plane" can be passed through the model, i.e., the model can be clipped using image data rendering software. Image processing software may render a planar resection of a 3D object on a 2D display and identify points around the perimeter, but these are unlikely to be ordered in the order of a continuous path around the object (e.g., clockwise or counterclockwise), i.e., in the order of tracing a continuous path in one direction around the perimeter of the model. For example, one cell may render the front of the object and the next cell may render the back.

[0038] 8A-8B conceptually illustrate an example of mis-ordering of points when clipping a model. With reference to FIG. 8A, 802 is a plane (simulating a cutting tool) that clips into bone 804. A cross section of bone 804 is shown from a top-down perspective, and in this example, bone 804 is a perfect cylinder in cross section. Imagine that the plane is clipped in the direction indicated by arrow 806. Clipping is used to identify tens, hundreds, thousands, or millions of points that define the model on the periphery of the bone surface, but in this illustration, only seven points (1-7) on the periphery of the bone surface are labeled for ease of understanding. The points are labeled in the order that the plane encounters when clipping in the direction indicated by arrow 806. Point 1 is the first contact point. Point 2 is the next point encountered, followed by point 3. Polygons (called "cells") can be formed from these vertices to represent the 3D model. For example, one cell could be a triangle defined by points {4, 5, 6}.

[0039] It is desirable to order these points in such a way that the desired cut can be made by moving continuously from point to point along the surface of the bone (i.e., forming a continuous path). However, the image rendering software is not configured to order these points in a useful order, such as starting with point 7 and ending with point 6 ({7, 5, 3, 1, 2, 4, 6}). In another example, it may be desired to cut all around the circumference of bone 804, in which case a useful order would be {1, 2, 4, 6, ..., 7, 5, 3}. This allows the cutting tool to operate by moving around in a continuous path from point to point, with each point being adjacent / next to the previous point.

[0040] 3D rendering software does not provide useful information to identify the order of points in this way. When looking at a 2D rendering (such as 602 in FIG. 6), the next pixel rendered when moving left or right from a point may be further into the background than the next point. Additionally, or alternatively, each next closest point in depth may be on another side of the object (e.g., compare points 4 and 5 in FIG. 8A). If a surgeon were to cut through these list of points in the order shown, he would make short cuts at point 1, point 2, point 3, and so on. Although the cuts eventually connect, they are not ideal because the cuts are individual cuts rather than continuous cuts between successive adjacent points.

[0041] Referring to FIG. 8B, a similar situation is shown, except that bone 812 is no longer a perfect cylinder. Again, plane 810 moves in the direction indicated by arrow 814. Points labeled 1,...,6 are encountered in the order labeled. It can be seen that point 5 is ordered before point 6 because of notch 816. However, a cutting tool moving along the perimeter from point 4 to point 5 will encounter point 6 before point 5. In this example, defining the cut to start at point 3 and end at point 5 will result in the points {3, 2, 1, 4, 6, 5} being properly ordered and forming a continuous path.

[0042] In both Figures 8A and 8B, the labeled points need to be ordered to form a continuous progression that moves (at least partially) around the object, but the image rendering software does not provide that functionality. A collection of points along the perimeter may be provided, but their order is arbitrary and does not indicate any proper ordering in terms of forming a continuous path along / around the object in a sequence of successive points, with each subsequent point moved to be the next point in the path.

[0043] Therefore, certain data, e.g., point coordinates, that may characterize the model / anatomy perimeter may require sorting to aid in the toolpath generation algorithm. Thus, in some embodiments, a sorting algorithm is used to sort the points of the perimeter of the 3D model. The sorted elements can be sorted such that sampling the points in either direction along the perimeter (e.g., clockwise or counterclockwise in the example of Figs. 8A, 8B) results in sorting in ascending or descending order. The toolpath represents a set of ordered coordinates that a tool (e.g., a cutting tool such as a sagittal saw) moves to perform a function. It is intuitive that sorting the points of an anatomical model simplifies the task of developing an algorithm to generate a toolpath.

[0044] Thus, a data operation is provided that orders the collection of surface points of the 3D model, and that order informs the cutting path generation algorithm. In a specific example involving polygons for rendering, the sorting algorithm may, when considering the current point, look at each of one or more candidate next points on the perimeter of the model, and determine the true next point (to move from the current point) by considering whether the next point shares an edge with the current point. Unless the current point is a start point, the current point is reached from one vertex that shares an edge and shares another edge with another vertex of the collection. At the start point, the movement direction can be in either direction (e.g., around the perimeter, assuming the cut goes around the target perimeter and back to the start point - see Figure 7). If the cut is a partial cut, from the start point to an end point that is not the start point, there are two candidate start points; that is, two "end" vertices, i.e., vertices that share an edge with only one other point on the perimeter line of the model identified from the clip.

[0045] By ordering perimeter points on the patient's anatomical model, cutting path boundaries and virtual boundaries can be dynamically (virtually and in real-time) generated that relate to the actual patient's anatomy and not, for example, the implant. The workflow allows for truly patient-specific surgical planning during surgery. After some cutting, it may be necessary to change the path, remove additional anatomy, etc., and additional cutting may be required. The aspects described herein order the points along the perimeter defined by the clips to dynamically create the appropriate cutting path in real-time. This differs from traditional approaches that define boundaries based on the implant, which is only an approximation of where the patient's anatomy is.

[0046] Thus, in one aspect, an algorithm is provided that dynamically solves for actual anatomical boundaries as input to a cutting path or boundary algorithm, as opposed to traditional approaches that associate boundaries with implants pre-operatively. Current approaches rely on pre-defined shapes based on the implant and can be improved upon in accordance with aspects described herein to generate patient-specific shapes.

[0047] Some embodiments may be integrated into robotic surgical systems to assist in navigated surgical procedures. Additionally, some embodiments may have other industrial applications outside of surgical applications.

[0048] 10-16 show additional examples illustrating aspects described herein. These examples use a perfect sphere as the 3D model, although it is understood that a model of a patient's anatomy will never be a perfect sphere. The model could be, for example, a bone or a portion thereof. Also, these examples use a planar clip for simplicity, although it is understood that the clip does not have to be planar and can be of any desired shape.

[0049] Referring to FIG. 10, the top of the model 1002 is clipped. A virtual plane 1004 is shown that defines the clip to the sphere, which can move towards the model 1002 and partially or fully intersect it to pass through the model. In this example, the top of the object 1002 is completely removed by resection. The 3D model 1002 has a surface / perimeter defined by a collection of points / coordinates. The surface / perimeter / boundary of the model 1002 represents the surface / perimeter / boundary of the patient's anatomy. The plane 1004 represents a blade that slices the perimeter of the anatomy (e.g., going into the sphere to remove the top).

[0050] In FIG. 11, a plane (virtual blade) 1004 slices around / through the top of a sphere 1002, creating a new surface 1006 called the clipped surface. An edge 1008 (forming a circle in the figure) represents the perimeter of that clipped surface and is a point on the surface / boundary / perimeter of the 3D model. Thus, an edge can be defined by a set of points on the surface of the 3D model that form a path along the perimeter of the 3D model and that correspond to points on the patient's anatomy. That set of points is a subset of the set of points that defines the entire surface of the model. The 3D rendering software may generate a set of points along that path, but the points are not in any meaningful order. The aspects described herein order those points. In particular, the edge 1008 that represents the path in FIG. 11 is one that the surgeon / robot can follow to make the proper cut. The portion of the clipped surface 1006 that falls within the edge 1008 represents, for example, the interior of a bone.

[0051] FIG. 12 shows another example, with two clips (both planar). The two clips are virtually created by planes 1004, 1005, defining two clipped surfaces 1006 and 1010. Edges 1008 and 1012 are the cut paths. 3D rendering software can create a set of points along these paths, but not in any particular useful order. The embodiments described herein can order them. In one example, this is done with two sets of ordered points; one for cut path 1008 and another for cut path 1012. In reality, either path 1012 or 1008 could be the first cut, and the path would be longer than shown and would return on itself. However, the second cut (forming the second surface) defines an edge 1014 that is shared by both surfaces, which becomes the intersection of the clips.

[0052] Figure 13 shows yet another example of two clips 1304, 1306 cutting into a model 1302, but neither of them passing completely through the model. Figure 14 shows the corresponding clipped surface result, where clipping has resulted in two clipped surfaces (surface 1310 and surface 1312). The edges 1314, 1316 on the perimeter / surface / boundary of the sphere 1302 form the cutting path. The intersection 1318 of the two clips is generated by the surgeon / robot cutting the sphere.

[0053] Thus, by using software to clip the 3D model, the clipping creates clipped surfaces of the 3D model that intersect with the surface / perimeter / boundary of the 3D model. Each clipped surface intersects with the surface of the 3D model (e.g., "includes at least one terminating edge"). In this and other figures, all clipped surfaces extend to the perimeter / surface / boundary of the 3D model itself. For example, in Figure 15 described below, these intersections are edges 1520, 1522, 1524, 1526.

[0054] The process can take a collection of points that define the surface of the model that are on or adjacent (within a threshold distance) to the intersection of the clipped surface with the surface / perimeter / boundary of the 3D model. For example, using Figure 14, the software can take two software-defined clips and identify the points that form an edge. However, because 3D models are not generated with an infinite number of points, the software can find the point that is closest (e.g., "on or adjacent (within a threshold distance)") to the actual intersection of the model and the clipped surface that was drawn as the edge. This produces a collection of points that form the edge, but not in any convenient order. When connected, the collection of points form a path along the surface / perimeter / boundary of the 3D model that corresponds to points on the patient's anatomy.

[0055] FIG. 15 shows an example with three clips. Three clipped surfaces are formed (surface 1528, surface 1530, and a third surface not visible in this view). The edges 1520, 1522, 1524, 1526 of the periphery of the 3D model 1502 are formed by the intersections of the clips with the perimeter / surfaces of the model 1502, which the embodiments described herein obtain and order into cutting paths. This can be done for each path collection. Here, there are four such collections: one for the curved path / edge 1520 on top of surface 1528, one for the curved path / edges 1524 and 1526 on the front and back edges of surface 1530, and one for the curved path / edge 1522 on top of the third surface not visible in this view. Edge 1532 is the interface between the clipped surfaces 1528 and 1530.

[0056] Figure 16 shows an imaginary plane (1604) that simulates a blade generally downward to cut bone 1603 so that implant 1602 will fit. Portion / surface 1605 is the interior of the bone that is exposed as a result of the clip. The embodiments described herein sequence points along edges 1606 and 1608 of Figure 16 to define a cutting path that creates two surfaces, one below the implant and surface 1605 adjacent to the implant.

[0057] The shortcomings of the prior art are overcome and further advantages are achieved by providing a computer-implemented method, a computer system for performing the method, and a computer program product including a computer-readable storage medium storing executable instructions for performing the methods described herein. Further features and advantages are realized by the concepts described herein.

[0058] In one example of a computer-implemented method, the method includes: The method includes obtaining a three-dimensional (3D) model of the patient's anatomy, obtaining a set of points based on clipping the 3D model, determining an ordering of the set of points, and performing processing based on the determination. The 3D model includes a set of points that define a surface / perimeter / boundary of the 3D model. The surface / perimeter / boundary of the 3D model represents a perimeter / boundary / surface of the patient's anatomy. The clipping forms a clipped surface of the 3D model that intersects with the surface / perimeter / boundary of the 3D model. The set of points is on or adjacent (within a threshold distance) to an intersection of the clipped surface with the surface / perimeter / boundary of the 3D model among the set of points. The set of points forms a path along the surface / perimeter / boundary of the 3D model and corresponds to a point on the patient's anatomy. The ordering specifies an order of the points of the set of points from a first point (of the set of points) to a last point (of the set of points) in a continuous path along the perimeter of the 3D model. Each next point in the sequence from the current point in the sequence is the next encountered point moving along the continuous path from the first point to the last point.

[0059] In an embodiment, the acquired set of points includes points of a set of points where no ordering is specified in the order from a first point to a last point of the continuous path. In an embodiment, the acquired set of points is acquired without a particular order of the points. In an embodiment, the acquired set of points is acquired with an order showing two points of the set, where between the two points there is one or more other points of the set along the periphery of the 3D model, where between the two points there is one or more other points of the set that are sequentially prior to the one or more other points of the set along the periphery of the 3D model. In an embodiment, determining the ordering of the set of points identifies a continuous path on the periphery of the patient's anatomy that identifies a step-by-step traversal of the periphery of the patient's anatomy in one direction.

[0060] In an embodiment, the method further comprises receiving from a user a definition of one or more clips to clip the 3D model. In an embodiment, the method further comprises obtaining a definition of one or more clips to clip the 3D model and determining a set of points by clipping the 3D model with the defined one or more clips. In an embodiment, the clipping is defined by the one or more clips defined by the user.

[0061] In an embodiment, the set of points includes at least five points. In an embodiment, performing the process includes outputting an order of the set of points as (or to facilitate generation of) a tool path / cut path along a perimeter of the patient's anatomy. In an embodiment, further includes using the order of the set of points to define a virtual boundary for performing the surgical cut.

[0062] It should be noted that the aspects described herein may not be practical, let alone possible, for a human to perform mentally. For example, models are comprised of digital representations of points in space, and performing the point determination and ordering described herein may not be practical or possible in the human mind, let alone at the speed required for surgical and other applications. The aspects described herein at least improve the art of surgical planning, including cutting path generation and other techniques.

[0063] The processes described herein may be performed by one or more computer systems, either alone or in combination. The one or more computer systems may be, for example, a 3D graphics rendering system / computer, a medical imaging system, a camera system, and / or a tracking system for tracking a patient's anatomy, or one or more systems in communication therewith. FIG. 9 illustrates an example of such a computer system and related devices incorporating and / or using aspects described herein. The computer system may be referred to herein as a data processing device / system, a computing device / system / node, or simply a computer. The computer system may be based on one or more of a variety of system architectures and / or instruction set architectures, such as those provided by, for example, Intel Corporation® (Santa Clara, Calif., USA) and ARM Holdings plc® (Cambridge, England, UK).

[0064] FIG. 9 illustrates a computer system 900 in communication with an external device 912. The computer system 900 includes one or more processors 902 (e.g., a central processing unit (CPU)). The processor includes functional components used to execute instructions (decode and execute program instructions, access memory to execute instructions, and write results of executed instructions), retrieve program instructions (such as from a cache or main memory). The processor 902 may also include registers used by the one or more functional components. The computer system 900 also includes memory 904, input / output (I / O) devices 908, and I / O interfaces 910, which may be connected to the processor 902 and each other via one or more buses and / or other connections. The bus connections represent one or more of several types of bus structures, including a memory bus or memory controller, a peripheral bus, a high-speed graphics port, and a processor or local bus using any of a variety of bus architectures. By way of example, such architectures include, but are not limited to, Industry Standard Architecture (ISA), Micro Channel Architecture (MCA), Enhanced ISA (EISA), Video Electronics Standards Association (VESA) Local Bus, and Peripheral Component Interconnect (PCI).

[0065] The memory 904 may be or include a main or system memory (such as a random access memory), a storage device such as a hard drive, flash media, or optical media, and / or a cache memory, for example, used to execute program instructions. The memory 904 may include a cache, such as a shared cache coupled to a local cache (e.g., an L1 cache, an L2 cache, etc.) of the processor 902. Additionally, the memory 904 may be or include at least one computer program product that includes a set (e.g., at least one) of program modules, instructions, codes, etc. that, when executed by one or more processors, perform functions of the embodiments described herein.

[0066] The memory 904 can store an operating system 905 and other computer programs 906, such as one or more computer programs / applications that perform aspects described herein. In particular, the programs / applications can include computer-readable program instructions that perform the functions of the embodiments described herein.

[0067] Examples of I / O devices 908 include, but are not limited to, microphones, speakers, global positioning system (GPS) devices, RGB and / or IR cameras, lights, accelerometers, gyroscopes, magnetometers, sensor devices for sensing light, proximity, heart rate, body and / or ambient temperature, blood pressure, and / or skin resistance, registration probes, and activity monitors. As shown, the I / O devices are integrated into the computer system, although in some embodiments the I / O devices may be considered external devices (912) connected to the computer system via one or more I / O interfaces 910.

[0068] The computer system 900 may communicate with one or more external devices 912 through one or more I / O interfaces 910. Examples of external devices include keyboards, pointing devices, displays, and / or other devices that allow a user to interact with the computer system 900. Examples of other external devices include devices that allow the computer system 900 to communicate with one or more other computing systems or peripheral devices, such as printers, and the like. Network interfaces / adapters are examples of I / O interfaces that allow the computer system 900 to communicate with one or more networks, such as a local area network (LAN), a general wide area network (WAN), and / or a public network (such as the Internet), enabling communication with other computing devices or systems, storage devices, and the like. Ethernet-based (such as Wi-Fi) interfaces and Bluetooth adapters are examples of currently available types of network adapters used in computer systems (BLUETOOTH is a registered trademark of Bluetooth SIG, Inc., Kirkland, Washington, USA).

[0069] Communications between the I / O interface 910 and the external device 912 may occur via a wired and / or wireless communication link 911, such as an Ethernet-based wired or wireless connection. Examples of wireless connections include cellular, Wi-Fi, Bluetooth, proximity-based, near-field, or other types of wireless connections. More generally, the communications link 911 may be any suitable wireless and / or wired communications link that communicates data.

[0070] A particular external device 912 may include one or more data storage devices that may store one or more programs, one or more computer readable program instructions, and / or data, etc. The computer system 900 may include and / or be connected to and in communication with (e.g., as a computer system external device) removable / non-removable, volatile / non-volatile computer system storage media. For example, non-removable, non-volatile magnetic media (commonly referred to as a "hard drive"), magnetic disk drives that read and write removable non-volatile magnetic disks (e.g., "floppy disks"), and / or optical disk drives that read and write removable non-volatile optical disks (e.g., CD-ROM, DVD-ROM, or other optical media) may be included and / or connected.

[0071] The computer system 900 may be operational with numerous other general purpose or special purpose computing system environments or configurations. The computer system 900 may take any of a variety of forms, well-known examples including, but not limited to, personal computer (PC) systems, server computer systems such as messaging servers, mobile devices / computers such as thin clients, thick clients, workstations, laptops, handheld devices, smartphones, tablets, wearable devices, multiprocessor systems, microprocessor-based systems, telephone terminals, network appliances (such as edge appliances), virtualization devices, storage controllers, set-top boxes, programmable consumer electronics, network PCs, minicomputer systems, mainframe computer systems, distributed cloud computing environments that include any of the above systems or devices, and the like.

[0072] Aspects of the present invention are systems, methods, and / or computer program products, any of which may perform or facilitate the aspects described herein.

[0073] In some embodiments, aspects of the invention may take the form of a computer program product and be embodied as a computer readable medium. A computer readable medium may be a tangible storage device / medium having computer readable program code / instructions stored thereon. Examples of computer readable media include, but are not limited to, electronic, magnetic, optical, or semiconductor storage devices or systems, or any combination of the foregoing. Exemplary embodiments of computer readable media include hard drives or other mass storage devices, electrical connections with wires, random access memory (RAM), read only memory (ROM), erasable programmable read only memory such as EPROM or flash memory, optical fiber, portable computer disks / diskettes such as compact disk read only memory (CD-ROM) or digital versatile disk (DVD), optical storage device, magnetic storage device, or any combination thereof. A computer readable medium is readable by a processor, processing unit, or the like, which can retrieve and execute data (e.g., instructions) from the medium. In certain examples, a computer program product is and includes one or more computer readable media that contain / store computer readable program code that provides and facilitates one or more aspects described herein.

[0074] As previously mentioned, the program instructions contained or stored on the computer-readable medium can be retrieved and executed by any of a variety of suitable configurations, such as a processor of a computer system, to cause the computer system to operate and function in a particular manner. Such program instructions for performing operations to implement, achieve, or facilitate aspects described herein can be written in, or compiled from written code, in any desired programming language. In some embodiments, such programming languages ​​include object-oriented and / or procedural programming languages, such as C, C++, C#, Java, and the like.

[0075] The program code may include one or more program instructions acquired for execution by one or more processors. The computer program instructions may be provided to one or more processors of one or more computer systems, for example, to generate a machine that, when executed by the one or more processors, performs, accomplishes, or facilitates aspects of the invention, such as the actions or functions illustrated in the flowcharts and / or block diagrams set forth herein. Thus, each block, or combination of blocks, of the flowchart illustrations and / or block diagrams shown and described herein may, in some embodiments, be implemented by computer program instructions.

[0076] Although various embodiments have been described above, these are merely examples.

[0077] The terms used herein are for the purpose of describing particular embodiments only and are not intended to be limiting. As used herein, the singular forms "a," "an," and "the" are intended to include the plural unless the context clearly indicates otherwise. Furthermore, it will be understood that the terms "comprises" and / or "comprising" as used herein specify the presence of stated features, integers, steps, operations, elements, and / or configurations, but do not exclude the presence or addition of one or more other features, integers, steps, operations, elements, configurations, and / or groups thereof.

[0078] Corresponding structures, materials, acts, and equivalents (when present) of all means or step-plus-function elements in the following claims include any structures, materials, or acts that perform the functions in combination with other claimed elements as specifically claimed. The description of one or more embodiments is presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the disclosed forms. Many modifications and variations will be apparent to those skilled in the art. The embodiments have been selected and described to best explain various aspects and practical applications and to enable those skilled in the art to appreciate various embodiments with various modifications suited to the particular use envisaged.

Claims

1. 1. A computer-implemented method comprising: obtaining a three-dimensional (3D) model of the patient's anatomy; obtaining a set of points based on clipping of the 3D model; determining an ordering of the set of points; performing an action based on said determination; the 3D model includes a collection of points defining a perimeter of the 3D model; a perimeter of the 3D model representing a perimeter of the patient's anatomy; the clipping forming at least one clipped surface of the 3D model that intersects with a perimeter of the 3D model; the set of points being on or adjacent to one or more intersections of at least one of the clipped surfaces with a perimeter of the 3D model; the set of points forms a path along a perimeter of the 3D model and corresponds to points on the patient's anatomy; the ordering specifies an order of points of the set of points from a first point of the set of points to a last point of the set of points in a continuous path along a perimeter of the 3D model, with each next point in the sequence from a current point in the sequence being a next encountered point moving along the continuous path from the first point to the last point. method.

2. The obtained set of points includes points of the set of points that are not ordered in the order from the first point to the last point of the continuous path. The method of claim 1.

3. The set of acquired points is acquired without any particular order of the points. The method of claim 1.

4. The acquired set of points is acquired with an order indicating two points of the set with one or more other points of the set along the perimeter of the 3D model between the two points, the one or more other points of the set being sequentially prior to the one or more other points of the set in the order along the perimeter of the 3D model between the two points. The method of claim 1.

5. determining an ordering of the set of points identifies a continuous path on a periphery of the patient's anatomy that identifies a step-by-step traversal of the periphery of the patient's anatomy in one direction; The method of claim 1.

6. receiving from a user one or more clip definitions for clipping the 3D model; The method of claim 1.

7. obtaining definitions of one or more clips for clipping the 3D model; and clipping the 3D model with the one or more defined clips to determine the set of points. The method of claim 1.

8. The clipping is defined by one or more user-defined clips. The method of claim 7.

9. The set of points includes at least five points. The method of claim 1.

10. Performing the process includes outputting the order of the set of points as a cutting path along the perimeter of the patient's anatomy or to facilitate generation of a cutting path. The method of claim 1.

11. using the order of the set of points to define a virtual boundary for performing a surgical cut. The method of claim 1.

12. 1. A computer system including a memory and a processor in communication with the memory, The computer system includes: obtaining a three-dimensional (3D) model of the patient's anatomy; obtaining a set of points based on clipping of the 3D model; determining an ordering of the set of points; performing an action based on said determination; performing a method comprising: the 3D model includes a collection of points defining a perimeter of the 3D model; a perimeter of the 3D model representing a perimeter of the patient's anatomy; the clipping forming at least one clipped surface of the 3D model that intersects with a perimeter of the 3D model; the set of points being on or adjacent to one or more intersections of at least one of the clipped surfaces with a perimeter of the 3D model; the set of points forms a path along a perimeter of the 3D model and corresponds to points on the patient's anatomy; the ordering specifies an order of points of a set of points from a first point of the set of points to a last point of the set of points in a continuous path along a perimeter of the 3D model, with each next point in the sequence from a current point in the sequence being a next encountered point moving along the continuous path from the first point to the last point. Computer system.

13. The obtained set of points includes points of the set of points where no ordering is specified in the order from the first point to the last point of the continuous path.

13. The computer system of claim 12.

14. The set of acquired points is acquired without any particular order of the points.

13. The computer system of claim 12.

15. the obtained set of points is obtained with an order indicating two points of the set with one or more other points of the set along the perimeter of the 3D model between the two points; one or more other points of the set are between the two points along the perimeter of the 3D model and sequentially precede, in the order, the one or more other points of the set.

13. The computer system of claim 12.

16. determining an ordering of the set of points identifies a continuous path on a periphery of the patient's anatomy that identifies a step-by-step traversal of the periphery of the patient's anatomy in one direction; 13. The computer system of claim 12.

17. receiving from a user one or more clip definitions for clipping the 3D model; 13. The computer system of claim 12.

18. obtaining definitions of one or more clips for clipping the 3D model; and clipping the 3D model with the one or more defined clips to determine the set of points.

13. The computer system of claim 12.

19. The clipping is defined by one or more user-defined clips.

20. The computer system of claim 18.

20. The set of points includes at least five points.

13. The computer system of claim 12.

21. Performing the process includes outputting the order of the set of points as a cutting path along the perimeter of the patient's anatomy or to facilitate generation of a cutting path.

13. The computer system of claim 12.

22. using the order of the set of points to define a virtual boundary for performing a surgical cut.

13. The computer system of claim 12.

23. 1. A computer program product comprising: A computer readable storage medium, the storage medium is readable by a processing circuit; The storage medium is, by the processing circuit, obtaining a three-dimensional (3D) model of the patient's anatomy; obtaining a set of points based on clipping of the 3D model; determining an ordering of the set of points; and storing instructions for performing a method including performing an action based on said determination; the 3D model includes a collection of points defining a perimeter of the 3D model; a perimeter of the 3D model representing a perimeter of the patient's anatomy; the clipping forming at least one clipped surface of the 3D model that intersects with a perimeter of the 3D model; the set of points being on or adjacent to one or more intersections of at least one of the clipped surfaces with a perimeter of the 3D model; the set of points forms a path along a perimeter of the 3D model and corresponds to points on the patient's anatomy; the ordering specifies an order of points of a set of points from a first point of the set of points to a last point of the set of points in a continuous path along a perimeter of the 3D model, with each next point in the sequence from a current point in the sequence being a next encountered point moving along the continuous path from the first point to the last point. Computer program products.

24. The obtained set of points includes points of the set of points that are not ordered in the order from the first point to the last point of the continuous path.

24. A computer program product according to claim 23.

25. The set of acquired points is acquired without any particular order of the points.

24. A computer program product according to claim 23.

26. The set of acquired points is acquired in an order that indicates two points of the set; between two points along the perimeter of the 3D model, there is one or more other points of the set that consecutively precede, in the order, 24. A computer program product according to claim 23.

27. determining an ordering of the set of points comprises identifying a continuous path on a periphery of the patient's anatomy that identifies a step-by-step traversal of the periphery of the patient's anatomy in one direction; 24. A computer program product according to claim 23.

28. receiving from a user one or more clip definitions for clipping the 3D model; 24. A computer program product according to claim 23.

29. obtaining definitions of one or more clips for clipping the 3D model; and clipping the 3D model with the one or more defined clips to determine the set of points.

24. A computer program product according to claim 23.

30. The clipping is defined by one or more user-defined clips.

30. A computer program product according to claim 29.

31. The set of points includes at least five points.

24. A computer program product according to claim 23.

32. Performing the process includes outputting the order of the set of points as a cutting path along the perimeter of the patient's anatomy or to facilitate generation of a cutting path.

24. A computer program product according to claim 23.

33. using the order of the set of points to define a virtual boundary for performing a surgical cut.

24. A computer program product according to claim 23.