Links to Exploration step
Le document en format XML
<record><TEI><teiHeader><fileDesc><titleStmt><title xml:lang="en">A semi-automatic computer-aided method for surgical template design</title>
<author><name sortKey="Chen, Xiaojun" sort="Chen, Xiaojun" uniqKey="Chen X" first="Xiaojun" last="Chen">Xiaojun Chen</name>
<affiliation><nlm:aff id="a1"><institution>Institute of Biomedical Manufacturing and Life Quality Engineering, State Key Laboratory of Mechanical System and Vibration, School of Mechanical Engineering, Shanghai Jiao Tong University</institution>
, Shanghai,<country>China</country>
</nlm:aff>
</affiliation>
</author>
<author><name sortKey="Xu, Lu" sort="Xu, Lu" uniqKey="Xu L" first="Lu" last="Xu">Lu Xu</name>
<affiliation><nlm:aff id="a1"><institution>Institute of Biomedical Manufacturing and Life Quality Engineering, State Key Laboratory of Mechanical System and Vibration, School of Mechanical Engineering, Shanghai Jiao Tong University</institution>
, Shanghai,<country>China</country>
</nlm:aff>
</affiliation>
</author>
<author><name sortKey="Yang, Yue" sort="Yang, Yue" uniqKey="Yang Y" first="Yue" last="Yang">Yue Yang</name>
<affiliation><nlm:aff id="a1"><institution>Institute of Biomedical Manufacturing and Life Quality Engineering, State Key Laboratory of Mechanical System and Vibration, School of Mechanical Engineering, Shanghai Jiao Tong University</institution>
, Shanghai,<country>China</country>
</nlm:aff>
</affiliation>
</author>
<author><name sortKey="Egger, Jan" sort="Egger, Jan" uniqKey="Egger J" first="Jan" last="Egger">Jan Egger</name>
<affiliation><nlm:aff id="a2"><institution>Faculty of Computer Science and Biomedical Engineering, Institute for Computer Graphics and Vision, Graz University of Technology</institution>
, Graz,<country>Austria</country>
</nlm:aff>
</affiliation>
<affiliation><nlm:aff id="a3"><institution>BioTechMed-Graz</institution>
,<country>Austria</country>
</nlm:aff>
</affiliation>
</author>
</titleStmt>
<publicationStmt><idno type="wicri:source">PMC</idno>
<idno type="pmid">26843434</idno>
<idno type="pmc">4740842</idno>
<idno type="url">http://www.ncbi.nlm.nih.gov/pmc/articles/PMC4740842</idno>
<idno type="RBID">PMC:4740842</idno>
<idno type="doi">10.1038/srep20280</idno>
<date when="2016">2016</date>
<idno type="wicri:Area/Pmc/Corpus">000831</idno>
<idno type="wicri:explorRef" wicri:stream="Pmc" wicri:step="Corpus" wicri:corpus="PMC">000831</idno>
</publicationStmt>
<sourceDesc><biblStruct><analytic><title xml:lang="en" level="a" type="main">A semi-automatic computer-aided method for surgical template design</title>
<author><name sortKey="Chen, Xiaojun" sort="Chen, Xiaojun" uniqKey="Chen X" first="Xiaojun" last="Chen">Xiaojun Chen</name>
<affiliation><nlm:aff id="a1"><institution>Institute of Biomedical Manufacturing and Life Quality Engineering, State Key Laboratory of Mechanical System and Vibration, School of Mechanical Engineering, Shanghai Jiao Tong University</institution>
, Shanghai,<country>China</country>
</nlm:aff>
</affiliation>
</author>
<author><name sortKey="Xu, Lu" sort="Xu, Lu" uniqKey="Xu L" first="Lu" last="Xu">Lu Xu</name>
<affiliation><nlm:aff id="a1"><institution>Institute of Biomedical Manufacturing and Life Quality Engineering, State Key Laboratory of Mechanical System and Vibration, School of Mechanical Engineering, Shanghai Jiao Tong University</institution>
, Shanghai,<country>China</country>
</nlm:aff>
</affiliation>
</author>
<author><name sortKey="Yang, Yue" sort="Yang, Yue" uniqKey="Yang Y" first="Yue" last="Yang">Yue Yang</name>
<affiliation><nlm:aff id="a1"><institution>Institute of Biomedical Manufacturing and Life Quality Engineering, State Key Laboratory of Mechanical System and Vibration, School of Mechanical Engineering, Shanghai Jiao Tong University</institution>
, Shanghai,<country>China</country>
</nlm:aff>
</affiliation>
</author>
<author><name sortKey="Egger, Jan" sort="Egger, Jan" uniqKey="Egger J" first="Jan" last="Egger">Jan Egger</name>
<affiliation><nlm:aff id="a2"><institution>Faculty of Computer Science and Biomedical Engineering, Institute for Computer Graphics and Vision, Graz University of Technology</institution>
, Graz,<country>Austria</country>
</nlm:aff>
</affiliation>
<affiliation><nlm:aff id="a3"><institution>BioTechMed-Graz</institution>
,<country>Austria</country>
</nlm:aff>
</affiliation>
</author>
</analytic>
<series><title level="j">Scientific Reports</title>
<idno type="eISSN">2045-2322</idno>
<imprint><date when="2016">2016</date>
</imprint>
</series>
</biblStruct>
</sourceDesc>
</fileDesc>
<profileDesc><textClass></textClass>
</profileDesc>
</teiHeader>
<front><div type="abstract" xml:lang="en"><p>This paper presents a generalized integrated framework of semi-automatic surgical template design. Several algorithms were implemented including the mesh segmentation, offset surface generation, collision detection, ruled surface generation, etc., and a special software named TemDesigner was developed. With a simple user interface, a customized template can be semi- automatically designed according to the preoperative plan. Firstly, mesh segmentation with signed scalar of vertex is utilized to partition the inner surface from the input surface mesh based on the indicated point loop. Then, the offset surface of the inner surface is obtained through contouring the distance field of the inner surface, and segmented to generate the outer surface. Ruled surface is employed to connect inner and outer surfaces. Finally, drilling tubes are generated according to the preoperative plan through collision detection and merging. It has been applied to the template design for various kinds of surgeries, including oral implantology, cervical pedicle screw insertion, iliosacral screw insertion and osteotomy, demonstrating the efficiency, functionality and generality of our method.</p>
</div>
</front>
<back><div1 type="bibliography"><listBibl><biblStruct><analytic><author><name sortKey="Ramasamy, M" uniqKey="Ramasamy M">M. Ramasamy</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Pesun, I J" uniqKey="Pesun I">I. J. Pesun</name>
</author>
<author><name sortKey="Gardner, F M" uniqKey="Gardner F">F. M. Gardner</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Kopp, K C" uniqKey="Kopp K">K. C. Kopp</name>
</author>
<author><name sortKey="Koslow, A H" uniqKey="Koslow A">A. H. Koslow</name>
</author>
<author><name sortKey="Abdo, O S" uniqKey="Abdo O">O. S. Abdo</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Dobbe, J G G" uniqKey="Dobbe J">J. G. G. Dobbe</name>
</author>
<author><name sortKey="Pre, K J" uniqKey="Pre K">K. J. Pre</name>
</author>
<author><name sortKey="Kloen, P" uniqKey="Kloen P">P. Kloen</name>
</author>
<author><name sortKey="Blankevoort, L" uniqKey="Blankevoort L">L. Blankevoort</name>
</author>
<author><name sortKey="Streekstra, G J" uniqKey="Streekstra G">G. J. Streekstra</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Dobbe, J G G" uniqKey="Dobbe J">J. G. G. Dobbe</name>
</author>
<author><name sortKey="Vroemen, J C" uniqKey="Vroemen J">J. C. Vroemen</name>
</author>
<author><name sortKey="Strackee, S D" uniqKey="Strackee S">S. D. Strackee</name>
</author>
<author><name sortKey="Streekstra, G J" uniqKey="Streekstra G">G. J. Streekstra</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Hu, Y" uniqKey="Hu Y">Y. Hu</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Hirao, M" uniqKey="Hirao M">M. Hirao</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Oka, K" uniqKey="Oka K">K. Oka</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Zhang, Y Z" uniqKey="Zhang Y">Y. Z. Zhang</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Chen, B" uniqKey="Chen B">B. Chen</name>
</author>
<author><name sortKey="Zhang, Y" uniqKey="Zhang Y">Y. Zhang</name>
</author>
<author><name sortKey="Xiao, S" uniqKey="Xiao S">S. Xiao</name>
</author>
<author><name sortKey="Gu, P" uniqKey="Gu P">P. Gu</name>
</author>
<author><name sortKey="Lin, X" uniqKey="Lin X">X. Lin</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Vasak, C" uniqKey="Vasak C">C. Vasak</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Stockmans, F" uniqKey="Stockmans F">F. Stockmans</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Vasak, C" uniqKey="Vasak C">C. Vasak</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Boonen, B" uniqKey="Boonen B">B. Boonen</name>
</author>
<author><name sortKey="Schotanus, M G M" uniqKey="Schotanus M">M. G. M. Schotanus</name>
</author>
<author><name sortKey="Kort, N P" uniqKey="Kort N">N. P. Kort</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Flugge, T V" uniqKey="Flugge T">T. V. Flugge</name>
</author>
<author><name sortKey="Nelson, K" uniqKey="Nelson K">K. Nelson</name>
</author>
<author><name sortKey="Schmelzeisen, R" uniqKey="Schmelzeisen R">R. Schmelzeisen</name>
</author>
<author><name sortKey="Metzger, M C" uniqKey="Metzger M">M. C. Metzger</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Shamir, A" uniqKey="Shamir A">A. Shamir</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Jagannathan, A" uniqKey="Jagannathan A">A. Jagannathan</name>
</author>
<author><name sortKey="Miller, E L" uniqKey="Miller E">E. L. Miller</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Au, O K C" uniqKey="Au O">O. K. C. Au</name>
</author>
<author><name sortKey="Zheng, Y" uniqKey="Zheng Y">Y. Zheng</name>
</author>
<author><name sortKey="Chen, M" uniqKey="Chen M">M. Chen</name>
</author>
<author><name sortKey="Xu, P" uniqKey="Xu P">P. Xu</name>
</author>
<author><name sortKey="Tai, C" uniqKey="Tai C">C. Tai</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Cohen Steiner, D" uniqKey="Cohen Steiner D">D. Cohen-Steiner</name>
</author>
<author><name sortKey="Alliez, P" uniqKey="Alliez P">P. Alliez</name>
</author>
<author><name sortKey="Desbrun, M" uniqKey="Desbrun M">M. Desbrun</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Zhang, E" uniqKey="Zhang E">E. Zhang</name>
</author>
<author><name sortKey="Mischaikow, K" uniqKey="Mischaikow K">K. Mischaikow</name>
</author>
<author><name sortKey="Turk, G" uniqKey="Turk G">G. Turk</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Gregory, A" uniqKey="Gregory A">A. Gregory</name>
</author>
<author><name sortKey="State, A" uniqKey="State A">A. State</name>
</author>
<author><name sortKey="Lin, M" uniqKey="Lin M">M. Lin</name>
</author>
<author><name sortKey="Manocha, D" uniqKey="Manocha D">D. Manocha</name>
</author>
<author><name sortKey="Livingston, M" uniqKey="Livingston M">M. Livingston</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Wong, K C H" uniqKey="Wong K">K. C. H. Wong</name>
</author>
<author><name sortKey="Siu, T Y H" uniqKey="Siu T">T. Y. H. Siu</name>
</author>
<author><name sortKey="Heng, P A" uniqKey="Heng P">P. A. Heng</name>
</author>
<author><name sortKey="Sun, H" uniqKey="Sun H">H. Sun</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Zockler, M" uniqKey="Zockler M">M. Zockler</name>
</author>
<author><name sortKey="Stalling, D" uniqKey="Stalling D">D. Stalling</name>
</author>
<author><name sortKey="Hege, H" uniqKey="Hege H">H. Hege</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Koc, B" uniqKey="Koc B">B. Koc</name>
</author>
<author><name sortKey="Lee, Y S" uniqKey="Lee Y">Y. S. Lee</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Jun, C S" uniqKey="Jun C">C. S. Jun</name>
</author>
<author><name sortKey="Kim, D S" uniqKey="Kim D">D. S. Kim</name>
</author>
<author><name sortKey="Park, S" uniqKey="Park S">S. Park</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Qu, X" uniqKey="Qu X">X. Qu</name>
</author>
<author><name sortKey="Stucker, B" uniqKey="Stucker B">B. Stucker</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Kim, S J" uniqKey="Kim S">S. J. Kim</name>
</author>
<author><name sortKey="Lee, D Y" uniqKey="Lee D">D. Y. Lee</name>
</author>
<author><name sortKey="Yang, M Y" uniqKey="Yang M">M. Y. Yang</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Payne, B A" uniqKey="Payne B">B. A. Payne</name>
</author>
<author><name sortKey="Toga, A W" uniqKey="Toga A">A. W. Toga</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Wang, C C L" uniqKey="Wang C">C. C. L. Wang</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Feito, F R" uniqKey="Feito F">F. R. Feito</name>
</author>
<author><name sortKey="Ogayar, C J" uniqKey="Ogayar C">C. J. Ogayar</name>
</author>
<author><name sortKey="Segura, R J" uniqKey="Segura R">R. J. Segura</name>
</author>
<author><name sortKey="Rivero, M L" uniqKey="Rivero M">M. L. Rivero</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Fuchs, H" uniqKey="Fuchs H">H. Fuchs</name>
</author>
<author><name sortKey="Kedem, Z M" uniqKey="Kedem Z">Z. M. Kedem</name>
</author>
<author><name sortKey="Uselton, S P" uniqKey="Uselton S">S. P. Uselton</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Chen, X" uniqKey="Chen X">X. Chen</name>
</author>
<author><name sortKey="Yuan, J" uniqKey="Yuan J">J. Yuan</name>
</author>
<author><name sortKey="Wang, C" uniqKey="Wang C">C. Wang</name>
</author>
<author><name sortKey="Huang, Y" uniqKey="Huang Y">Y. Huang</name>
</author>
<author><name sortKey="Kang, L" uniqKey="Kang L">L. Kang</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Berry, E" uniqKey="Berry E">E. Berry</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Van Den Broeck, J" uniqKey="Van Den Broeck J">J. Van den Broeck</name>
</author>
<author><name sortKey="Wirix Speetjens, R" uniqKey="Wirix Speetjens R">R. Wirix-Speetjens</name>
</author>
<author><name sortKey="Sloten, J V" uniqKey="Sloten J">J. V. Sloten</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Payne, B A" uniqKey="Payne B">B. A. Payne</name>
</author>
<author><name sortKey="Toga, A W" uniqKey="Toga A">A. W. Toga</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Powell, W B" uniqKey="Powell W">W. B. Powell</name>
</author>
<author><name sortKey="Chen, Z L" uniqKey="Chen Z">Z. L. Chen</name>
</author>
</analytic>
</biblStruct>
</listBibl>
</div1>
</back>
</TEI>
<pmc article-type="research-article"><pmc-dir>properties open_access</pmc-dir>
<front><journal-meta><journal-id journal-id-type="nlm-ta">Sci Rep</journal-id>
<journal-id journal-id-type="iso-abbrev">Sci Rep</journal-id>
<journal-title-group><journal-title>Scientific Reports</journal-title>
</journal-title-group>
<issn pub-type="epub">2045-2322</issn>
<publisher><publisher-name>Nature Publishing Group</publisher-name>
</publisher>
</journal-meta>
<article-meta><article-id pub-id-type="pmid">26843434</article-id>
<article-id pub-id-type="pmc">4740842</article-id>
<article-id pub-id-type="pii">srep20280</article-id>
<article-id pub-id-type="doi">10.1038/srep20280</article-id>
<article-categories><subj-group subj-group-type="heading"><subject>Article</subject>
</subj-group>
</article-categories>
<title-group><article-title>A semi-automatic computer-aided method for surgical template design</article-title>
</title-group>
<contrib-group><contrib contrib-type="author"><name><surname>Chen</surname>
<given-names>Xiaojun</given-names>
</name>
<xref ref-type="corresp" rid="c1">a</xref>
<xref ref-type="aff" rid="a1">1</xref>
</contrib>
<contrib contrib-type="author"><name><surname>Xu</surname>
<given-names>Lu</given-names>
</name>
<xref ref-type="aff" rid="a1">1</xref>
</contrib>
<contrib contrib-type="author"><name><surname>Yang</surname>
<given-names>Yue</given-names>
</name>
<xref ref-type="aff" rid="a1">1</xref>
</contrib>
<contrib contrib-type="author"><name><surname>Egger</surname>
<given-names>Jan</given-names>
</name>
<xref ref-type="aff" rid="a2">2</xref>
<xref ref-type="aff" rid="a3">3</xref>
</contrib>
<aff id="a1"><label>1</label>
<institution>Institute of Biomedical Manufacturing and Life Quality Engineering, State Key Laboratory of Mechanical System and Vibration, School of Mechanical Engineering, Shanghai Jiao Tong University</institution>
, Shanghai,<country>China</country>
</aff>
<aff id="a2"><label>2</label>
<institution>Faculty of Computer Science and Biomedical Engineering, Institute for Computer Graphics and Vision, Graz University of Technology</institution>
, Graz,<country>Austria</country>
</aff>
<aff id="a3"><label>3</label>
<institution>BioTechMed-Graz</institution>
,<country>Austria</country>
</aff>
</contrib-group>
<author-notes><corresp id="c1"><label>a</label>
<email>xiaojunchen@163.com</email>
</corresp>
</author-notes>
<pub-date pub-type="epub"><day>04</day>
<month>02</month>
<year>2016</year>
</pub-date>
<pub-date pub-type="collection"><year>2016</year>
</pub-date>
<volume>6</volume>
<elocation-id>20280</elocation-id>
<history><date date-type="received"><day>29</day>
<month>04</month>
<year>2015</year>
</date>
<date date-type="accepted"><day>30</day>
<month>12</month>
<year>2015</year>
</date>
</history>
<permissions><copyright-statement>Copyright © 2016, Macmillan Publishers Limited</copyright-statement>
<copyright-year>2016</copyright-year>
<copyright-holder>Macmillan Publishers Limited</copyright-holder>
<license license-type="open-access" xlink:href="http://creativecommons.org/licenses/by/4.0/"><pmc-comment>author-paid</pmc-comment>
<license-p>This work is licensed under a Creative Commons Attribution 4.0 International License. The images or other third party material in this article are included in the article’s Creative Commons license, unless indicated otherwise in the credit line; if the material is not included under the Creative Commons license, users will need to obtain permission from the license holder to reproduce the material. To view a copy of this license, visit <ext-link ext-link-type="uri" xlink:href="http://creativecommons.org/licenses/by/4.0/">http://creativecommons.org/licenses/by/4.0/</ext-link>
</license-p>
</license>
</permissions>
<abstract><p>This paper presents a generalized integrated framework of semi-automatic surgical template design. Several algorithms were implemented including the mesh segmentation, offset surface generation, collision detection, ruled surface generation, etc., and a special software named TemDesigner was developed. With a simple user interface, a customized template can be semi- automatically designed according to the preoperative plan. Firstly, mesh segmentation with signed scalar of vertex is utilized to partition the inner surface from the input surface mesh based on the indicated point loop. Then, the offset surface of the inner surface is obtained through contouring the distance field of the inner surface, and segmented to generate the outer surface. Ruled surface is employed to connect inner and outer surfaces. Finally, drilling tubes are generated according to the preoperative plan through collision detection and merging. It has been applied to the template design for various kinds of surgeries, including oral implantology, cervical pedicle screw insertion, iliosacral screw insertion and osteotomy, demonstrating the efficiency, functionality and generality of our method.</p>
</abstract>
</article-meta>
</front>
<body><p>Computer-assisted preoperative planning plays an important role to enhance predictability of the surgical result, in accordance with demands for accuracy, efficiency, minimal tissue damage, and even aesthetics. Aiming at transferring a preoperative plan into the actual surgical site precisely, a customized surgical template can serve as a guide to direct the implant drilling or tumor and bone resection, providing an accurate placement of the implant or prosthesis, etc.<xref ref-type="bibr" rid="b1">1</xref>
. It has been widely used as an effective solution in various surgical interventions, including oral implantology, cervical or lumbar pedicle screw placement, total knee arthroplasty, treatment of dysplastic hip joint or sacroiliac joint fracture, osteotomy, etc.</p>
<p>Early in the 1990s, there were several reports concerning the use of manually fabricated surgical templates. Pesun and Gardner<xref ref-type="bibr" rid="b2">2</xref>
described a typical technique to fabricate a template with gutta-percha for oral implant placement. Kopp <italic>et al.</italic>
<xref ref-type="bibr" rid="b3">3</xref>
designed a barium-coated template for dental implant placement with external guide wires used in conjunction with a computed tomography (CT) scan. The drawbacks of manual design and fabrication method are obvious as it is a complex process with low precision and efficiency.</p>
<p>Subsequently, since the beginning of the 21<sup>st</sup>
century, the development of computer-aided design (CAD) and manufacturing (CAM) has brought great revolution for the design and fabrication of surgical template, and the general workflow (shown in <xref ref-type="fig" rid="f1">Fig. 1</xref>
) is described as follows: on the basis of the original medical images (CT, Magnetic resonance imaging (MRI), etc.), the computer-aided preoperative planning can be achieved through image processing methods including segmentation, registration, 3D reconstruction and visualization, etc., so that the ideal implant position and osteotomy trajectory can be obtained. According to this result, the surgical template can be designed, and then fabricated for clinical application using 3D printing technology. Since the template dictates the location, angle, and depth of insertion of the implant, so as to provide a link between the planning and the actual surgery by transferring the simulated plan accurately to the patient. The “in-house software” was also reported for the application of patient-specific instrument guide creation in the literature. For example, Dobbe <italic>et al.</italic>
<xref ref-type="bibr" rid="b4">4</xref>
<xref ref-type="bibr" rid="b5">5</xref>
developed a home-made planning software for complex long-bone deformities. With the support of this software, the interactive preoperative planning of osteotomy can be performed, and a customized cutting guide can be designed. However, the limitation is that the interobserver variation of the surgical procedure was not investigated. In addition, the software was not a general one, but just for the corrective osteotomy surgery.</p>
<p>Currently, some commercially available CAD software’s in industry such as Imageware (Siemens PLM Software, Germany), UG (Siemens PLM Software, Germany), Pro/E (PTC, USA), Geomagic Studio (Geomagic, USA), Paraform (Paraform, USA), CopyCAD (Delcam, UK), STTIM100 (CISIGRAPH, France), ICEM Surf (ICEM, UK), etc. have been used for the design of customized surgical templates. For example, Hu <italic>et al.</italic>
<xref ref-type="bibr" rid="b6">6</xref>
designed customized surgical templates through Imageware for the C2 translaminar screw insertion. Hirao <italic>et al.</italic>
<xref ref-type="bibr" rid="b7">7</xref>
utilized Magics RP (Materialise, Leuven, Belgium) to design a drilling template for arthrodesis of the first metatarsophalangeal (MTP-1) joint. However, it requires high level of the engineering background to improve the efficiency of the template design, and the support from the engineers is necessary for some cases. Since the traditional CAD softwares are not dedicated for the surgical template design, the usage may be too complicated and difficult for a surgeon to learn. For example, Oka <italic>et al.</italic>
<xref ref-type="bibr" rid="b8">8</xref>
took several hours to design a custom-made osteotomy template for corrective osteotomy using Magics RP. Zhang <italic>et al.</italic>
<xref ref-type="bibr" rid="b9">9</xref>
and Chen <italic>et al.</italic>
<xref ref-type="bibr" rid="b10">10</xref>
reported very complicated procedures of the usage of the software of Mimics (Materialise, Leuven, Belgium) and Imageware respectively for the design of the patient-specific acetabular navigational template and iliosacral screw insertion template.</p>
<p>Sometimes, surgeons may need the support from professional engineers at companies for the template design. For example, Vasak<xref ref-type="bibr" rid="b11">11</xref>
had to send the preoperative planning data to a certified manufacturing facility (Nobel Biocare, Kloten, Switzerland) for the design and manufacturing of a stereolithographic implantation template with appropriate guide sleeves. Stockmans<xref ref-type="bibr" rid="b12">12</xref>
also reported that he received the engineering services provided by the Materialise Company (Leuven, Belgium) for the design and fabrication of the patient-specific SurgiCase<sup>®</sup>
surgical guides.</p>
<p>Nowadays, there are also two other commercially available methods<list id="l1" list-type="order"><list-item><p>Some preoperative planning software suppliers provide the services of template design and fabrication. For example, NobelGuide<sup>TM</sup>
(Nobel Biocare, Gothenburg, Sweden) and SurgiGuide<sup>®</sup>
(Materialise Dental, Leuven, Belgium) systems are utilized for the preoperative planning of dental implant surgery. Then, the planning data is transferred to a certified manufacturing facility for template design and manufacturing (Vasak <italic>et al.</italic>
<xref ref-type="bibr" rid="b13">13</xref>
). However, a relatively long delivery time is required for this kind of method. In addition, in most cases, the final products obtained from the software suppliers cannot be optimized further since the surgeons are not able to participate in the process of template design.</p>
</list-item>
<list-item><p>There are some available software with the function of template design as well. For example, the software of Signature<sup>TM</sup>
Personalized Patient Care (SPPC) (Biomet Inc., Warsaw, USA) is utilized for the design of a drilling and cutting template for total knee arthroplasty (Boonen <italic>et al.</italic>
<xref ref-type="bibr" rid="b14">14</xref>
). The CoDiagnostiX<sup>TM</sup>
(Straumann, Basel, Switzerland) is used to design a drilling guide for oral implantology (Flügge <italic>et al.</italic>
<xref ref-type="bibr" rid="b15">15</xref>
). Although these commercial solutions allow template modification and even local design and fabrication, they are just applicable for very limited kinds of surgery. For example, the CoDiagnostiX<sup>TM</sup>
and 3Shape Dental System<sup>TM</sup>
(3shape A/S, Copenhagen, Denmark) are only used for the dental restoration and orthodontics, and the SPPC is for the orthopedics, etc. As for many other kinds of surgeries such as pedicle screw insertion and osteotomy, a general software for customized template design is not reported.</p>
</list-item>
</list>
</p>
<p>Therefore, semi-automatic algorithms for surgical template design were presented is this paper and then a general computer-aided design software was developed. With a simple user interface, a template can be designed and optimized through several simple interactive steps within only a few minutes. The output file is saved as the common Standard Template Library (STL) format and can be directly fabricated using 3D printing technology. Especially, the software can be utilized for various kinds of surgeries, ranging from the oral implantology as far as to the pedicle and iliosacral screw insertion.</p>
<p>In addition, this study involves some typical topics in the field of modeling and computer graphics including mesh segmentation, offset surface generation, Boolean operation, and ruled surface generation.</p>
<p><bold>Mesh segmentation.</bold>
Existing mesh segmentation approaches can be roughly categorized into two groups based on the goal of segmentation<xref ref-type="bibr" rid="b16">16</xref>
, no matter if they are automatic, semi-automatic or interactive.</p>
<p>One is to segment mesh into meaningful parts, mostly volumetric, according to intuitive understanding of object components. Concavity or curvature is often utilized as key measure for the algorithms. For instance, Jagannathan and Miller<xref ref-type="bibr" rid="b17">17</xref>
put forward a mesh segmentation approach using curvedness-based region growing. Au <italic>et al.</italic>
<xref ref-type="bibr" rid="b18">18</xref>
described an automatic mesh segmentation algorithm through locating concave creases and seams using a set of concavity-sensitive scalar fields.</p>
<p>The other works aim at segmenting mesh into patches under the predefined criteria or just based on the trajectory defined by the user. For example, Cohen-Steiner <italic>et al.</italic>
<xref ref-type="bibr" rid="b19">19</xref>
presented an approximation for the segmentation optimization problem by iterative clustering. Zhang <italic>et al.</italic>
<xref ref-type="bibr" rid="b20">20</xref>
proposed a feature-based patch creation algorithm for manifold mesh surfaces. Our method belongs to the second class. Here, the target region is partitioned from the input mesh to obtain the inner surface of the template according to the cutting boundary indicated by the user. In an existing method utilized by Gregory <italic>et al.</italic>
<xref ref-type="bibr" rid="b21">21</xref>
, Wong <italic>et al.</italic>
<xref ref-type="bibr" rid="b22">22</xref>
Zockler <italic>et al.</italic>
<xref ref-type="bibr" rid="b23">23</xref>
, etc., a vertex sequence in order is specified by the user, and then the mesh is segmented along the shortest path generated from the vertex sequence. However, because the path is along the edges of the triangle cells, the jaggies usually occur at the border of the segmentation result. In this study, the vertex distance scalars are utilized to partition the mesh. Original triangle cells may be cut through and new triangle cells are generated, resulting in smoother segmentation border.</p>
<p><bold>Offset surface generation.</bold>
To obtain the offset surface of a triangulated mesh, a common method is to offset the triangles or vertices directly along the normal directions. However, the offset of triangles will lead to gaps between the adjacent triangle cells, while the offset of vertices will lead to intersection when the offset distance is larger than the minimum radius of curvature in the concave region. Several algorithms have been developed to solve this problem. Koc <italic>et al.</italic>
<xref ref-type="bibr" rid="b24">24</xref>
for example presented a non-uniform method for offsetting, as well as an average surface normal method to detect correct offset contours. Jun <italic>et al.</italic>
<xref ref-type="bibr" rid="b25">25</xref>
on the other hand, developed a curve-based method in which the curves were obtained from slicing the offset elements by the drive planes. Furthermore, in the method of Qu <italic>et al.</italic>
<xref ref-type="bibr" rid="b26">26</xref>
, the offset vector of each vertex was calculated by the weighted sum of the adjacent facet normal. Moreover, Kim <italic>et al.</italic>
<xref ref-type="bibr" rid="b27">27</xref>
proposed an offset method using the multiple normal vectors of a vertex. Most of these offset methods are utilized for rapid prototype or NC milling tool path generation aiming at obtaining the precise offset result. Nevertheless, in our case, the outer surface should be as smooth as possible, only reflecting a general trend of the inner surface without details, so the precise offset is not suitable. In this study, distance field of the inner surface is established with the method of Payne and Toga<xref ref-type="bibr" rid="b28">28</xref>
. Then the distance field is contoured to generate isosurface with marching cubes algorithm.</p>
<p><bold>Boolean operation and ruled surface generation.</bold>
As a typical issue in computer graphics, Boolean operation has been studied for many years. However, even some famous commercial CAD software’s have problems in Boolean operation when the models are complex. Robustness and time complexity are two major challenges. Wang<xref ref-type="bibr" rid="b29">29</xref>
described an approach for approximate Boolean operations of two polygonal mesh solids with Layered Depth Images. However, the resulted mesh may be self-intersected. Feito <italic>et al.</italic>
<xref ref-type="bibr" rid="b30">30</xref>
presented a method for Boolean operation on triangulated solids, which is based on a straightforward data structure and the use of an octree. We, however, aim at simplicity and reduction in time complexity, Boolean operation is simplified for collision detection and merging in that only “union” is employed in our case so that the automatic identification of relevant parts according to Boolean operation type can be omitted.</p>
<p>As for the ruled surface, it is utilized to merge patches together, including the connection of the inner and outer surfaces, and merging relevant parts after collision detection. Fuchs <italic>et al.</italic>
<xref ref-type="bibr" rid="b31">31</xref>
proposed a valid method to simplify the problem of ruled surface determination to shortest-path problem in a directed graph. However, the algorithm for the solution of shortest-path is complicated, and not suitable for our case. So we proposed a label setting algorithm that is utilized for the solution of shortest-path problem.</p>
<sec disp-level="1"><title>Results</title>
<p>A general framework of semi-automatic surgical template design was introduced and several algorithms including inner surface generation, outer surface generation, ruled surface, collision detection and merging were presented. On the basis of these algorithms, a software named TemDesigner (The screenshot of the software is shown in <xref ref-type="fig" rid="f2">Fig. 2</xref>
) was developed under the platform of Microsoft Visual Studio 2008 (Microsoft, Washington, USA). Some famous Open Source toolkits including VTK (Visualization Toolkit, an open-source, freely available software system for 3D computer graphics, image processing and visualization, <ext-link ext-link-type="uri" xlink:href="http://www.vtk.org/">http://www.vtk.org/</ext-link>
) and Qt (a cross-platform application and UI framework, <ext-link ext-link-type="uri" xlink:href="http://qt-project.org/">http://qt-project.org/</ext-link>
) were involved. Several cases of customized template design for various kinds of surgeries were conducted using TemDesigner. No specific condition was required for mesh tessellation or concavity for those cases. With the manually-drawn curves indicating the target regions and relative input parameters, the templates can be generated automatically and rapidly. The results shown in below demonstrated the effectiveness and generality of our approach.</p>
<sec disp-level="2"><title>Oral implantology</title>
<p>The preoperative planning for oral implantology was accomplished through the software named CAPPOIS<xref ref-type="bibr" rid="b32">32</xref>
(Computer-Assisted Preoperative Planning for Oral Implant Surgery, Institute of Biomedical Manufacturing and Life Quality Engineering, Shanghai Jiao Tong University, Shanghai, China) to determine the optimal positions and orientations of implants. The surface mesh of dentition was generated based on the registration, which means superimposing the three-dimensional laser-scanned model of plaster casts of dentition onto the three-dimensional skull model reconstructed from CT images. The detailed design procedure is shown in <xref ref-type="fig" rid="f3">Fig. 3</xref>
. Firstly, initial control points were indicated by the user and the contour curve was generated and updated dynamically (<xref ref-type="fig" rid="f3">Fig. 3</xref>
(<xref ref-type="fig" rid="f1">1</xref>
)). After the target region was determined (<xref ref-type="fig" rid="f3">Fig. 3</xref>
(<xref ref-type="fig" rid="f2">2</xref>
)), the initial base template without drilling tubes was generated automatically (<xref ref-type="fig" rid="f3">Fig. 3</xref>
(<xref ref-type="fig" rid="f3">3</xref>
)). Then, the axes of virtual preoperative planned implants were imported, indicating the positions and orientations of the drilling tubes (<xref ref-type="fig" rid="f3">Fig. 3</xref>
(<xref ref-type="fig" rid="f4">4</xref>
)). With related parameters including inner and outer radii and length of tubes input by the user, the final tooth-supported template was generated automatically (<xref ref-type="fig" rid="f3">Fig. 3</xref>
(<xref ref-type="fig" rid="f5">5</xref>
,<xref ref-type="fig" rid="f6">6</xref>
)).</p>
</sec>
<sec disp-level="2"><title>Cervical pedicle screw placement</title>
<p>For the pedicle screw placement, how to provide good anchoring without unexpected perforation poses a great challenge for surgeons. Intraoperative navigation using optical tracking device can be an effective method. However, the registration process is usually quite time-consuming. For each vertebra, a separate registration step is demanded, which typically spends about 15 minutes<xref ref-type="bibr" rid="b33">33</xref>
. This means the operating time will be increased with the added amount of vertebras for insertion, leading to a higher risk of intraoperative infection. The use of a surgical template is a feasible solution. In our case, the surface mesh of vertebral column was reconstructed with CT data using Slicer 4.3 (a free, open source software package for visualization and medical image computing, <ext-link ext-link-type="uri" xlink:href="http://www.slicer.org/">http://www.slicer.org/</ext-link>
). <xref ref-type="fig" rid="f4">Figure 4</xref>
shows the process of template design for the cervical pedicle screw insertion. The target region was defined to cover the lamina and spinous process in a lock-and-key type for stability of positioning during the surgery. The thickness of template was set as 2.5 mm to ensure suitable strength. The orientations of drilling tubes were determined according to preoperative planned trajectory.</p>
</sec>
<sec disp-level="2"><title>Iliosacral screw insertion</title>
<p>The iliosacral screw fixation has been widely used for the stabilization of unstable pelvic fractures. Customized templates for the iliosacral screw insertion can be a good option to achieve accurate screw placement, reduction of radiation exposure and surgical time compared with traditional methods of fluoroscopic detection. The CT data of the patient were imported into Slicer 4.3 to reconstruct the 3D model of pelvic girdle. The target region was designed to cover the iliac crest for fixation during surgical operation. The drilling tube was oriented through the sacro-iliac joint into sacrum. The design procedure and results are illustrated in <xref ref-type="fig" rid="f5">Fig. 5</xref>
.</p>
</sec>
<sec disp-level="2"><title>Osteotomy</title>
<p>Customized templates are widely used for the treatment of cubitus varus deformity in osteotomy. Different from the templates mentioned above, there’s no drilling tube on the template of osteotomy. During the surgery, the template is placed at the target region of the bone. Then, the bone can be resected along with the borderline of the template. <xref ref-type="fig" rid="f6">Figure 6</xref>
shows the design procedure and the result of a template for osteotomy.</p>
<p>In order to evaluate the quality of the designed guides, the actual template and adjacent tissue models have been fabricated through the 3D printing technology (shown in <xref ref-type="fig" rid="f7">Fig. 7</xref>
). The verification result demonstrated the unique topography between the match surface of the templates and the adjacent tissues. In addition, the previous pilot study<xref ref-type="bibr" rid="b32">32</xref>
proved that the fixation of the templates was unique, stable, and reliable, and the accuracy of surgical outcome can meet the clinical requirement and more clinical trials will be conducted in the future.</p>
<p>All the experimental results were conducted on a PC with Intel Core i5-3210 with a 2.50 GHz CPU, 6 GB memory and a 64-bit Windows 7 operating system. <xref ref-type="table" rid="t1">Table 1</xref>
shows the property of the input surface models and the corresponding computing time of each step during the procedure of the template design. In this table, time of the initial template generation is the sum of ‘Inner surface segmentation’, ‘Offset of inner surface’, ‘Generation of points for outer surface segmentation’, ‘Outer surface segmentation’ and ‘Connection of inner and outer surfaces’. For all examples, the overall time for the automatic computing is less than one minute. As for the surface segmentation, the computational complexity of this algorithm is O(N•n), where N is the number of points of the input mesh for segmentation, and n is the number of points for segmentation. That means that the time for inner surface segmentation depends on the scale of the input surface mesh and the length of the curve of target region. For offset of inner surface, the computing time depends on the scale of the inner surface. As for the ruled surface generation, the computing time of this part depends on the sampling step, and the scale of the inner surface and offset surface. Furthermore, the user interaction time including the generation of contour curve and the related parameters setup (such as the thickness of template, the size of implant, etc.) was approximate 8–10 minutes. It was related to the type of surgery, the size and shape complexity of the 3D-reconstructed models, the user operation proficiency, etc.</p>
</sec>
</sec>
<sec disp-level="1"><title>Discussion</title>
<p>The method for the semi-automatic template design in this study is described as follows: Firstly, a point loop is indicated by the user on the target mesh. Then, for each vertex of the mesh, a signed distance to the input point loop is calculated for contouring to achieve mesh segmentation. Hence, the inner surface is clipped from the entire mesh for exact match and stability of positioning during surgical operation. Subsequently, the distance field of the inner surface is calculated to obtain the offset surface, which will afterwards be segmented to obtain the outer surface of the template. In order to form a closed model, the ruled surface is employed to connect the inner and outer surfaces. The generation of the ruled surface is transferred to the shortest path problem in a directed graph. Finally, the Boolean operation, which is simplified to collision detection and merging, is utilized to add the drilling tubes to the template.</p>
<p>In conclusion, based on the above-mentioned algorithms of TemDesigner presented in the section of “Introduction”, surgeons can design and modify the template efficiently with simple interactions, and then fabricate it using 3D printing technology. It can be a very effective way for template design to reduce the delivery time. Drilling and cutting templates for various surgeries, including oral implantology, cervical pedicle screw insertion, iliosacral screw insertion and osteotomy have been semi-automatically designed with TemDesigner, demonstrating the functionality and generality of our method.</p>
<p>In addition, our method using TemDesigner has been compared with the other two kinds of methods (Method 1: Using the Imageware, UG, and Magics RP together; Method 2: Using 3-matic).</p>
<p>The workflow of Method 1 for the template design (take oral implantology as an example) is shown in <xref ref-type="fig" rid="f8">Fig. 8</xref>
. Since the functions involved in these three softwares are very complicated, it requires high level of the engineering background for the user to grasp all of these softwares and accomplish the template design.</p>
<p>As for Method 2, the functions of combining surfaces, repairing and de-featuring, remeshing, modifying and editing, etc. are used for the template design. Although the complexity level of the usage of the 3-matic is lower than Method 1 (for example, no need of importing and exporting), the user is still required to own the engineering background knowledge of geometry design and get very familiar with the 3-matic.</p>
<p>With respect to TemDesigner, the user is only required to indicate some initial control points so that the contour curve is obtained and updated dynamically. Then, after inputting some related parameters, the final surgical template is generated automatically. It also means our method does not require a lot of skills or experiences. Observations compared to commercial software packages are listed in <xref ref-type="table" rid="t2">Table 2</xref>
, which show the generality, efficiency and less required user background knowledge of our method.</p>
<p>The advantages of our method compared with other widely used methods in literature are as follows:<list id="l2" list-type="order"><list-item><p>Simple user interface: What the user just needs to do is to indicate a sparse point loop for the target region, import axes from preoperative planning results, and input related parameters. Compared with other traditional CAD software (<xref ref-type="bibr" rid="b6">6</xref>
<xref ref-type="bibr" rid="b7">7</xref>
<xref ref-type="bibr" rid="b9">9</xref>
<xref ref-type="bibr" rid="b10">10</xref>
), it is very easy to learn and operate, and it allows the clinical user to design surgical template quickly and modify it conveniently.</p>
</list-item>
<list-item><p>Generality: The method is applicable to template design for a variety of surgical interventions, while most of other methods in literature can only be employed for a specified surgery. For example, CoDiagnostiX<sup>TM</sup>
, 3Shape Dental System<sup>TM</sup>
, and Nobel Biocare (NobelGuide), are just focusing on oral and maxillofacial surgery, while SPPC and Zimmer Patient Specific Instruments (Warsaw, IN, USA) are only applicable to TKA.</p>
</list-item>
<list-item><p>High efficiency: For an engineer familiar with traditional CAD software of mechanical design, it will cost several hours to design a template. Modification of template design according to the surgeon’s demands will add another several days. As for the template designed and fabricated by the software supplier, the delivery time of several days is unavoidable. With our method, it only takes up to a few minutes to finish the template design, and modification is also very efficient. The concrete time cost depends on the mesh tessellation. The output model is in the form of STL so that it can be promptly fabricated through 3D printing technology.</p>
</list-item>
</list>
</p>
<p>However, a connected mesh is required for the segmentation algorithm in this study. Since “holes” may occur on the surface mesh reconstructed from CT or CBCT data, if those “holes” are quite close to the contour generated dynamically with the indicated control points, the generation of point loop for segmentation may fail, resulting in unexpected clipping result. Besides, the post-processing of the template is also required before it is applied to clinical practice. Similar to the template design using traditional CAD software of mechanical design, morphology of the inner surface is the inverse of the bone surface of the surgical site, guaranteeing unique fitness between the template and the surgical site. However, if the target region on the model surface is complex, for example, in some partially edentulous cases of oral implantology, “shortcut” may happen, i.e., bottom of the template is smaller than the upper part, and then it will not be assembled without additional tuning of the template inner surface. For further work, a segmentation algorithm that can deal with an unconnected mesh, will be developed. A feasible solution is to detect and patch the holes of the mesh before the segmentation. As for merging, the collision point loop will be used for clipping the two meshes separately. Then, points of the border edge for merging will be modified to ensure closure after merging. This software will be developed as a free extension module of 3D Slicer, the free, open source software package for visualization and image analysis ( <ext-link ext-link-type="uri" xlink:href="http://www.slicer.org/">http://www.slicer.org/</ext-link>
).</p>
<p>In addition, the function of predicting the stability of the fit of a patient-specific template will be developed in the future work. In the previously published work, Van de Broeck <italic>et al.</italic>
<xref ref-type="bibr" rid="b34">34</xref>
have proposed a method to analyze the contact surface of a customized template and predict how stable the contact on the supporting bone surface will be. We plan to adopt their novel methods in the near future so that it will allow the surgeons to compare different designs during the preoperative design process.</p>
</sec>
<sec disp-level="1"><title>Methods</title>
<sec disp-level="2"><title>Overview</title>
<p>The general framework of our approach is shown in <xref ref-type="fig" rid="f9">Fig. 9</xref>
and the user interactions are described in details below:<list id="l3" list-type="order"><list-item><p>Input Surface Mesh: Generally, 3D models reconstructed from CT or CBCT data are in STL format so that they are polyhedra with triangle faces. If not, the model will be triangulated firstly.</p>
</list-item>
<list-item><p>Curve for cutting: A closed curve on the surface mesh will be generated with the user points to indicate a target region. The curve can be modified dynamically through adjustment or cancel of the existing control points, or adding new ones.</p>
</list-item>
<list-item><p>Inner surface generation: With sample points from the curve, the target region is segmented from the input mesh as the inner surface of the template.</p>
</list-item>
<list-item><p>Outer surface generation: A closed offset surface of the inner surface is firstly achieved by means of distance field method. Then, mesh segmentation is utilized to clip the outer surface from the offset. Sampling points of the inner surface edges are projected to the offset surface to obtain points for clipping.</p>
</list-item>
<list-item><p>Connection of inner & outer surfaces: Inner and outer surfaces are connected with ruled surfaces. To address this problem, it is transferred to shortest path problem in a directed single layer graph.</p>
</list-item>
<list-item><p>Collision detection & merging: Firstly, collision detection is employed to generate the collision polylines and obtain intersection triangles. Secondly, intersection triangles are removed. Thirdly, extract the relevant parts and fuse them together with ruled surfaces.</p>
</list-item>
</list>
</p>
</sec>
<sec disp-level="2"><title>Inner surface generation</title>
<sec disp-level="3"><title>Mesh segmentation</title>
<p>The inputs of the segmentation algorithm include: 1. A connected mesh; 2. A loop consisting of a not-self-intersecting point sequence and the points must be on the mesh. The general procedure is described as follows: Firstly, another loop strictly going along the edges (the line segments connecting adjacent vertices) of the mesh is created. Then, signed distances from each vertex to the initial loop are calculated. Finally, the signed distances are utilized as implicit function to clip the mesh.</p>
</sec>
<sec disp-level="3"><title>Edge Loop Generation</title>
<p><list id="l4" list-type="order"><list-item><p>Suppose <italic>List_InitialPoints</italic>
denotes the initial, manually indicated point sequence. Connect adjacent points with linear segments in order, and the polyline is denoted as <italic>L</italic>
<sub><italic>polyline</italic>
</sub>
.</p>
</list-item>
<list-item><p>Search the mesh vertex closest to each initial point and save the new vertex sequence as <italic>List_ClosestPoints</italic>
= {<italic>A</italic>
<sub><italic>0</italic>
</sub>
, <italic>A</italic>
<sub><italic>1</italic>
</sub>
, <italic>A</italic>
<sub><italic>2</italic>
</sub>
…}.</p>
</list-item>
<list-item><p>The edges of the mesh connecting the closest vertices are tracked as the following procedure (shown in <xref ref-type="fig" rid="f10">Fig. 10</xref>
), and denote the new vertex sequence by <italic>List_Vertex</italic>
, i.e. insert vertices between adjacent points in <italic>List_ClosestPoints</italic>
, so that the polyline of the new vertex sequence <italic>List_Vertex</italic>
is strictly along the edges of the mesh:</p>
</list-item>
</list>
</p>
<p>i. Add A<sub>0</sub>
to List_Vertex;</p>
<p>ii. For current <italic>Ai</italic>
, <italic>P</italic>
= <italic>Ai</italic>
;</p>
<p>iii. Search all neighbor vertices of <italic>P</italic>
, denoted {<italic>B</italic>
<sub><italic>0</italic>
</sub>
<italic>, B</italic>
<sub><italic>1</italic>
</sub>
<italic>, B</italic>
<sub><italic>2</italic>
</sub>
<italic>, …, B</italic>
<sub><italic>n</italic>
</sub>
};</p>
<p>iv. Find the <italic>B</italic>
<sub><italic>i</italic>
</sub>
which meets the following condition, and insert it to <italic>List_Vertex</italic>
;</p>
<p><disp-formula id="eq1"><inline-graphic id="d33e593" xlink:href="srep20280-m1.jpg"></inline-graphic>
</disp-formula>
</p>
<p> in which <italic>d</italic>
<sub><italic>i</italic>
</sub>
is the distance from <italic>B</italic>
<sub><italic>i</italic>
</sub>
to line <italic>A</italic>
<sub><italic>i</italic>
</sub>
<italic>A</italic>
<sub>i+1</sub>
. That means, <italic>B</italic>
<sub><italic>i</italic>
</sub>
is oriented in the direction of and closest to vector <italic>A</italic>
<sub><italic>i</italic>
</sub>
<italic>A</italic>
<sub><italic>i+1</italic>
</sub>
.</p>
<p>If (<italic>B</italic>
<sub><italic>i</italic>
</sub>
){</p>
<p> Insert <italic>B</italic>
<sub><italic>i</italic>
</sub>
to <italic>List_Vertex</italic>
;</p>
<p> If (<italic>B</italic>
<sub><italic>i</italic>
</sub>
≠ <italic>A</italic>
<sub><italic>i</italic>
<sub>+</sub>
<italic>1</italic>
</sub>
)</p>
<p> {<italic>P</italic>
= <italic>B</italic>
<sub><italic>i</italic>
</sub>
; Go back to step iii);}</p>
<p> else</p>
<p> {<italic>i</italic>
= <italic>i</italic>
+ <italic>1</italic>
; Go back to step ii);}</p>
<p> }</p>
<p> else{Go to step v);}</p>
<p> v. Track the path between <italic>A</italic>
<sub><italic>i</italic>
</sub>
and <italic>A</italic>
<sub>i+1</sub>
along the edge using an approximate shortest path algorithm. Add the vertices to <italic>List_Vertex</italic>
. Let <italic>i</italic>
= <italic>i</italic>
+ <italic>1</italic>
and go back to step ii;</p>
<p>The algorithm terminates when <italic>A</italic>
<sub><italic>i</italic>
</sub>
becomes <italic>A</italic>
<sub><italic>0</italic>
</sub>
again.</p>
</sec>
</sec>
<sec disp-level="2"><title>Calculation of signed distance</title>
<p>Suppose the polyline <italic>L</italic>
<sub><italic>polyline</italic>
</sub>
of <italic>List_InitialPoints</italic>
consists of <italic>n</italic>
segments, it also means there are totally <italic>n</italic>
points in the sequence. For every vertex of the mesh, distances to each of the n segments are calculated and the smallest one is chosen as its scalar. Moreover, for each vertex <italic>P</italic>
<sub><italic>i</italic>
</sub>
in <italic>List_Vertex</italic>
, the closest point to it lying within the segment which may finally contribute to the scalar is denoted as <italic>Q</italic>
<sub><italic>i</italic>
</sub>
. After that, the sign of the distance is to be determined. Apparently, the loop of <italic>List_Vertex</italic>
divides the mesh into two parts. The vertices belong to one part are marked positive, and the other negative. The signs of points in <italic>List_Vertex</italic>
are determined as follows: 1. For <italic>P</italic>
<sub><italic>i</italic>
</sub>
in <italic>List_Vertex</italic>
, among all its neighboring vertices of the mesh except those in <italic>List_Vertex</italic>
, the one whose scalar is the largest is denoted as <italic>N</italic>
<sub><italic>i</italic>
</sub>
; 2. If ‖<italic>N</italic>
<sub><italic>i</italic>
</sub>
<italic>P</italic>
<sub><italic>i</italic>
</sub>
‖ < ‖<italic>N</italic>
<sub><italic>i</italic>
</sub>
<italic>Q</italic>
<sub><italic>i</italic>
</sub>
‖, the sign of <italic>P</italic>
<sub><italic>i</italic>
</sub>
is the same as <italic>N</italic>
<sub><italic>i</italic>
</sub>
. Otherwise, its sign is opposite to <italic>N</italic>
<sub><italic>i</italic>
</sub>
.</p>
</sec>
<sec disp-level="2"><title>Segmentation with signed distance</title>
<p>Now, every vertex of the mesh has its own scalar, i.e. signed distance, which will be used to segment the surface. For each triangle of the mesh, three vertices are clockwise denoted as <italic>P</italic>
<sub><italic>0</italic>
</sub>
, <italic>P</italic>
<sub><italic>1</italic>
</sub>
, and <italic>P</italic>
<sub><italic>2</italic>
</sub>
, respectively. If the scalar signs of <italic>P</italic>
<sub><italic>i</italic>
</sub>
and <italic>P</italic>
<sub><italic>(i</italic>
<sub>+</sub>
<italic>1)</italic>
%<italic>3</italic>
</sub>
are identical, then <italic>P</italic>
<sub><italic>i</italic>
</sub>
is saved as <italic>Q</italic>
<sub><italic>i</italic>
</sub>
. If the signs of <italic>P</italic>
<sub><italic>0</italic>
</sub>
, <italic>P</italic>
<sub><italic>1</italic>
</sub>
, and <italic>P</italic>
<sub><italic>2</italic>
</sub>
are all positive or negative, Δ<italic>Q</italic>
<sub><italic>0</italic>
</sub>
<italic>Q</italic>
<sub><italic>1</italic>
</sub>
<italic>Q</italic>
<sub><italic>2</italic>
</sub>
is the same triangle as Δ<italic>P</italic>
<sub><italic>0</italic>
</sub>
<italic>P</italic>
<sub><italic>1</italic>
</sub>
<italic>P</italic>
<sub><italic>2</italic>
</sub>
, and there is no new triangle generated. Otherwise, linear interpolation is utilized to insert new vertex, whose scalar is 0, on the edge <italic>P</italic>
<sub><italic>i</italic>
</sub>
<italic>P</italic>
<sub><italic>(i</italic>
<sub>+</sub>
<italic>1)</italic>
%<italic>3</italic>
</sub>
if the signs of <italic>P</italic>
<sub><italic>i</italic>
</sub>
and <italic>P</italic>
<sub><italic>(i</italic>
<sub>+</sub>
<italic>1)</italic>
%<italic>3</italic>
</sub>
are different. Then, a new triangleΔ<italic>Q</italic>
<sub><italic>0</italic>
</sub>
<italic>Q</italic>
<sub><italic>1</italic>
</sub>
<italic>Q</italic>
<sub><italic>2</italic>
</sub>
is generated, dividing the original one Δ<italic>P</italic>
<sub><italic>0</italic>
</sub>
<italic>P</italic>
<sub><italic>1</italic>
</sub>
<italic>P</italic>
<sub><italic>2</italic>
</sub>
into three. <xref ref-type="fig" rid="f11">Figure 11</xref>
is an example demonstrating how the process works.</p>
</sec>
<sec disp-level="2"><title>Points for segmentation</title>
<p>Initial control points are placed by the user to surround a target region on the three-dimensional model surface. These control points can be modified, deleted, or added to adjust the target region. Usually, the initial points won’t be dense enough for a segmentation result with smooth edge, taking into account the user-friendliness. Therefore, a method of resampling the spline generated with initial control points more densely was also developed in this study. First of all, cardinal spline is applied for interpolating. However, although the spline passes through the initial points on the surface, the spline itself is not located on the surface. That means, the interpolating points for clipping are most likely not on the surface. To solve this problem, at each current angle of view, world point coordinates of the resample points are converted to display coordinates, which will be converted to world point coordinates again. In consideration of efficiency, the z-buffer method is employed to carry out the second conversion instead of geometric methods, typically a ray cast. The conversion operation is updated in <italic>real-time</italic>
when the next initial point is placed or the last one is deleted. So, if the angle of view is changed, current resample points after coordinate conversion will be saved. After that, the next initial control point placed by the user will start a new spline snippet at the new view angle. The two snippets of two different view angles are connected with smooth curve. <xref ref-type="fig" rid="f12">Figure 12</xref>
demonstrates the curve generated with user defined points and the result of mesh segmentation.</p>
</sec>
<sec disp-level="2"><title>Outer surface generation</title>
<p>As explained above, distance field is contoured to generate isosurface instead of triangle or vertex offset directly. Firstly, a closed isosurface of the inner surface is generated. Then, the mesh segmentation algorithm described above is utilized. The closed surface will be clipped with the points projected from the inner surface border edges to generate the outer surface.</p>
</sec>
<sec disp-level="2"><title>Offset surface</title>
<p>Firstly, the distance field of the inner surface is established with the method of Payne and Toga<xref ref-type="bibr" rid="b35">35</xref>
. A cuboid region, expanded in each of the x-y-z directions properly from the bounding box of the inner surface, is defined. The minimum distance of each sample point in the cuboid region to the inner surface is calculated with the octree-based spatial search method. Subsequently, the distance field is contoured to generate isosurface with specified value of thickness of the template. Then, the method of marching cubes is utilized. Each time eight points of a volume are processed by comparing their scalar value with the specified contour value. Then, through linear interpolating, the vertices of new polygons are obtained. The individual polygons passing through the cubes are finally fused into the isosurface. <xref ref-type="fig" rid="f13">Figure 13</xref>
shows an example of the surface offset result.</p>
</sec>
<sec disp-level="2"><title>Clipping to generate outer surface</title>
<p>The mesh segmentation algorithm is utilized to obtain the outer surface of template. So, point loop on the mesh for clipping is necessary. Since the outline of the outer surface should be similar to the inner one, sampling points of inner surface border edges are projected to the closed surface to obtain segmentation points. To avoid self-intersection of the point loop, for each sampling point, the projection is achieved along the average normal direction within several neighbor points. After clipping is done, the part along with inner surface normal is chosen as the outer surface.</p>
</sec>
<sec disp-level="2"><title>Ruled surface</title>
<p>To ensure that the model is closed, the border edge points of the connection surface must be just those of the inner and outer surfaces. In order to simplify the algorithm and reduce time costing, ruled surface, i.e., sequence of triangles is utilized to connect inner and outer surfaces. Here, determination of the ruled surface is formulated as some certain kind of shortest path problem in a directed single layer graph<xref ref-type="bibr" rid="b29">29</xref>
. Then label setting algorithm<xref ref-type="bibr" rid="b36">36</xref>
is employed to solve the unconstrained single-source shortest path problem.</p>
<p>Suppose the edge contours of inner and outer surfaces, which are actually polylines, be defined by the sequences of <italic>m</italic>
and <italic>n</italic>
ordered discrete points separately. That is, sequence of <italic>P</italic>
<sub><italic>0</italic>
</sub>
, <italic>P</italic>
<sub><italic>1</italic>
</sub>
, <italic>P</italic>
<sub><italic>2</italic>
</sub>
, …, <italic>P</italic>
<sub><italic>m−1</italic>
</sub>
represents p, the border edge contour of inner surface, and sequence of <italic>Q</italic>
<sub><italic>0</italic>
</sub>
, <italic>Q</italic>
<sub><italic>1</italic>
</sub>
, <italic>Q</italic>
<sub><italic>2</italic>
</sub>
, …, <italic>Q</italic>
<sub><italic>n−1</italic>
</sub>
represents <italic>q</italic>
, the outer one. It is noted, that <italic>P</italic>
<sub><italic>0</italic>
</sub>
follows <italic>P</italic>
<sub><italic>m−1</italic>
</sub>
, and <italic>Q</italic>
<sub><italic>0</italic>
</sub>
follows <italic>Q</italic>
<sub><italic>n−1</italic>
</sub>
, so <italic>p</italic>
and <italic>q</italic>
separately consists of <italic>m</italic>
and <italic>n</italic>
segments. Here, an approximately optimized result can meet the command so that the two contours are handled as open for reducing complexity. Since one triangle consists of three vertices, it must be {<italic>P</italic>
<sub><italic>i</italic>
</sub>
<italic>, P</italic>
<sub><italic>j</italic>
</sub>
<italic>, Q</italic>
<sub><italic>k</italic>
</sub>
} or {<italic>Q</italic>
<sub><italic>i</italic>
</sub>
<italic>, Q</italic>
<sub><italic>j</italic>
</sub>
<italic>, P</italic>
<sub><italic>k</italic>
</sub>
}. Thus, each triangle consists of one contour segment and two spans. Take {<italic>P</italic>
<sub><italic>i</italic>
</sub>
<italic>, P</italic>
<sub><italic>j</italic>
</sub>
<italic>, Q</italic>
<sub><italic>k</italic>
</sub>
} for example, one contour segment is <italic>P</italic>
<sub><italic>i</italic>
</sub>
<italic>P</italic>
<sub><italic>j</italic>
</sub>
, two spans are <italic>P</italic>
<sub><italic>i</italic>
</sub>
<italic>Q</italic>
<sub><italic>k</italic>
</sub>
and <italic>P</italic>
<sub><italic>j</italic>
</sub>
<italic>Q</italic>
<sub><italic>k</italic>
</sub>
. To ensure that all the m + n points of the contours are the vertices of the ruled surface while avoiding self-intersection, two conditions should be met:<list id="l5" list-type="order"><list-item><p>For two spans <italic>P</italic>
<sub><italic>i</italic>
</sub>
<italic>Q</italic>
<sub><italic>j</italic>
</sub>
and <italic>P</italic>
<sub><italic>k</italic>
</sub>
<italic>Q</italic>
<sub><italic>l</italic>
</sub>
either <italic>i</italic>
≤ <italic>k</italic>
& <italic>j</italic>
≤ <italic>l</italic>
, or <italic>i</italic>
≥ <italic>k</italic>
& <italic>j</italic>
≥ <italic>l</italic>
is met;</p>
</list-item>
<list-item><p>The contour segment should be formed with two adjacent vertices.</p>
</list-item>
</list>
</p>
<p>So, each triangle is defined as either of the form {<italic>P</italic>
<sub><italic>i</italic>
</sub>
<italic>, P</italic>
<sub><italic>i</italic>
<sub>+</sub>
<italic>1</italic>
</sub>
<italic>, Q</italic>
<sub><italic>k</italic>
</sub>
} or {<italic>Q</italic>
<sub><italic>i</italic>
</sub>
<italic>, Q</italic>
<sub><italic>i<sub>+</sub>
1</italic>
</sub>
<italic>, P</italic>
<sub><italic>k</italic>
</sub>
}, and each contour segment only contributes to one triangle. Obviously, there are totally m + n − 2 contour segments so that the ruled surface consists of <italic>m </italic>
+<italic> n</italic>
<italic>− 2</italic>
triangles. Taking into consideration of the two conditions above, for the triangle {<italic>P</italic>
<sub><italic>i</italic>
</sub>
<italic>, P</italic>
<sub><italic>i</italic>
<sub>+</sub>
<italic>1</italic>
</sub>
<italic>, Q</italic>
<sub><italic>k</italic>
</sub>
}, its adjacent triangle with the common span <italic>P</italic>
<sub><italic>i</italic>
<sub>+</sub>
<italic>1</italic>
</sub>
<italic>Q</italic>
<sub><italic>k</italic>
</sub>
can only be defined as the form of {<italic>P</italic>
<sub><italic>i</italic>
<sub>+</sub>
<italic>1</italic>
</sub>
<italic>, P</italic>
<sub><italic>i</italic>
<sub>+</sub>
<italic>2</italic>
</sub>
<italic>, Q</italic>
<sub><italic>k</italic>
</sub>
} or {<italic>P</italic>
<sub><italic>i</italic>
<sub>+</sub>
<italic>1</italic>
</sub>
<italic>, Q</italic>
<sub><italic>k</italic>
</sub>
<italic>, Q</italic>
<sub><italic>k</italic>
<sub>+</sub>
<italic>1</italic>
</sub>
}. The next triangle can only be <italic>P</italic>
-succeeded or <italic>Q</italic>
-succeeded. In other words, if the next span is determined, the next triangle is determined. Then the determination of ruled surface is turned into the determination of the sequence of spans. It is easy to point out that the possible sequences which satisfy the criteria are totally</p>
<p><disp-formula id="eq2"><inline-graphic id="d33e1449" xlink:href="srep20280-m2.jpg"></inline-graphic>
</disp-formula>
</p>
<p>Graph theory is employed to calculate the shortest path for the selection of the proper sequence, whose sum of span length is the smallest.</p>
<p>The directed single layer weighted graph <italic>G-(V, A)</italic>
is constructed as follows (shown in <xref ref-type="fig" rid="f14">Fig. 14</xref>
):<list id="l6" list-type="order"><list-item><p>Each node <italic>V</italic>
<sub><italic>i</italic>
</sub>
, <sub>j</sub>
ϵV in Row <italic>i</italic>
, Column <italic>j</italic>
(<italic>i</italic>
= <italic>0, 1, 2, …, m</italic>
<italic>−</italic>
<italic>1; j</italic>
= <italic>0, 1, 2, …, n</italic>
− <italic>1</italic>
) represents a corresponding span <italic>P</italic>
<sub><italic>i</italic>
</sub>
<italic>Q</italic>
<sub><italic>j</italic>
</sub>
;</p>
</list-item>
<list-item><p>Each node <italic>V</italic>
<sub><italic>i, j</italic>
</sub>
is only incident to <italic>V</italic>
<sub><italic>i</italic>
<sub>+</sub>
<italic>1, j</italic>
</sub>
and <italic>V</italic>
<sub><italic>i, j</italic>
<sub>+</sub>
<italic>1</italic>
</sub>
, and incident from <italic>V</italic>
<sub><italic>i−1, j</italic>
</sub>
and <italic>V</italic>
<sub><italic>i, j−1</italic>
</sub>
. As is shown in the figure, each arc in set <italic>A</italic>
connect two adjacent nodes, oriented upward or to right;</p>
</list-item>
<list-item><p>The weight of the arcs incident to <italic>V</italic>
<sub><italic>i, j</italic>
</sub>
is the length of span <italic>P</italic>
<sub><italic>i</italic>
</sub>
<italic>Q</italic>
<sub><italic>j</italic>
</sub>
;</p>
</list-item>
</list>
</p>
<p>A link edge in the graph indicates a unique triangle whose left span is represented by the start node of the link edge, and right span corresponding to the end node. Thus, any path from the source node <italic>V</italic>
<sub><italic>0</italic>
</sub>
,<sub><italic>0</italic>
</sub>
to the target node <italic>V</italic>
<sub><italic>m−1</italic>
</sub>
,<sub><italic>n−1</italic>
</sub>
indicates a unique ordered sequence of triangle. Consequently, the question is reduced to a single-source shortest path problem which is then solved with label setting algorithm.</p>
<p>In this case, the label of a node <italic>V</italic>
<sub><italic>i</italic>
</sub>
,<sub><italic>j</italic>
</sub>
is denoted by ( <italic>i, j, length, Disi,j, Prev</italic>
), where <italic>i</italic>
and <italic>j</italic>
are subscripts of the node, length means the weight of arcs incident to <italic>V</italic>
<sub><italic>i,j</italic>
,</sub>
<italic>Dis</italic>
<sub><italic>i,j</italic>
</sub>
represents the shortest distance from the source node <italic>V</italic>
<sub><italic>0,0</italic>
</sub>
to the current node <italic>V</italic>
<sub><italic>i,j</italic>
</sub>
, and Prev indicates in the shortest distance case, the node before <italic>Vi,j</italic>
is on its left (denoted by 1) or downstairs (−1), since</p>
<p><disp-formula id="eq3"><inline-graphic id="d33e1647" xlink:href="srep20280-m3.jpg"></inline-graphic>
</disp-formula>
</p>
<p>We only need to compare <italic>Dis</italic>
<sub><italic>i−1, j</italic>
</sub>
and <italic>Dis</italic>
<sub><italic>i, j−1</italic>
</sub>
when the label of a node <italic>V</italic>
<sub><italic>i, j</italic>
</sub>
is to be updated.</p>
<p>The general flow of the label setting algorithm works as below:<list id="l7" list-type="order"><list-item><p>Labels of nodes in <italic>Row0</italic>
and <italic>Column0</italic>
are updated. That’s because in any path their previous node can only be the left and lower one respectively. <italic>Dis</italic>
<sub><italic>i,j</italic>
</sub>
of <italic>V</italic>
<sub><italic>0,0</italic>
</sub>
is set 0.</p>
</list-item>
<list-item><p>Labels of the rest nodes are calculated according to the index from small to large order as:</p>
</list-item>
</list>
for i = 1:m − 1</p>
<p> for <italic>j</italic>
= <italic>1:n − 1</italic>
</p>
<p> if (<italic>Dis</italic>
<sub><italic>i−1,j</italic>
</sub>
< <italic>Dis</italic>
<sub><italic>i,j−1</italic>
</sub>
)</p>
<p> <italic>Dis</italic>
<sub><italic>i,j</italic>
</sub>
= <italic>Dis</italic>
<sub><italic>i−1,j</italic>
</sub>
+ <italic>lengh; Prev</italic>
= <italic>−1</italic>
</p>
<p> else</p>
<p> <italic>Dis</italic>
<sub><italic>i,j</italic>
</sub>
= <italic>Dis</italic>
<sub><italic>i,j−1</italic>
</sub>
+ <italic>lengh; Prev</italic>
= <italic>1</italic>
</p>
<p> for ends</p>
<p>for ends</p>
<p>After the label of the target node <italic>V</italic>
<sub><italic>m−1, n−1</italic>
</sub>
is updated, the shortest path can be derived easily on the basis of <italic>Prev</italic>
in the labels from the target node to the source, and <xref ref-type="fig" rid="f15">Fig. 15</xref>
shows the result of automatic connection of inner and outer surfaces of oral implantology template using the above algorithm.</p>
</sec>
<sec disp-level="2"><title>Collision detection and merging</title>
<p>After connection of the inner and the outer surfaces, the initial template is generated. Then, drilling tubes need to be added. Firstly, collision detection is executed to generate the collision polylines and obtain intersection triangles. Secondly, intersection triangles are removed. Thirdly, extract the relevant parts and merge them together through collision polylines with ruled surfaces described above.</p>
</sec>
<sec disp-level="2"><title>Collision detection</title>
<p><list id="l8" list-type="order"><list-item><p>Oriented bounding box (OBB) trees of the two triangulated surfaces for collision detection are generated.</p>
</list-item>
<list-item><p>Each pair of intersecting leaf nodes is detected.</p>
</list-item>
<list-item><p>Each triangle of the first node will be extracted sequentially to perform collision detection with all the triangles of the other node one by one. The two triangles of a pair are denoted Triangle1 and Triangle2 separately. Concrete procedure goes as follows:</p>
</list-item>
</list>
</p>
<p><italic>for each edge of Triangle1</italic>
</p>
<p> <italic>intersection detection with the bounding box of Triangle2</italic>
</p>
<p> <italic>if intersects</italic>
</p>
<p> <italic>intersection detection with the finite plane of Triangle2</italic>
</p>
<p> <italic>if intersects and the intersection point is inside Triangle2</italic>
</p>
<p> <italic>the intersection point will be saved and the two triangles be marked</italic>
</p>
<p> <italic>else if the two triangles are coplanar and overlapping partially</italic>
</p>
<p> <italic>the intersection point of two edges is saved</italic>
</p>
</sec>
<sec disp-level="2"><title>Merging</title>
<p>After the collision detection is finished, one or more polylines are generated by connecting the intersection points together in order. The polyline can be used as point loop for clipping the two surfaces separately. Then, relevant parts are extracted to be fused together. However, different geometric structures, mainly constructions of triangles of the two surfaces, lead to different results of clipping edge, so the two parts can’t match exactly at the clipping edge without additional process. In our case, the polyline of intersection points is utilized as the joint edge. All the marked triangles are removed and each original triangulated surface is divided to at least two fragments. Finally, the target parts of each original surface are merged together through filling triangles between the correct edge of fragment and the polyline (as shown in <xref ref-type="fig" rid="f16">Fig. 16</xref>
).</p>
</sec>
</sec>
<sec disp-level="1"><title>Additional Information</title>
<p><bold>How to cite this article</bold>
: Chen, X. <italic>et al.</italic>
A semi-automatic computer-aided method for surgical template design. <italic>Sci. Rep.</italic>
<bold>6</bold>
, 20280; doi: 10.1038/srep20280 (2016).</p>
</sec>
</body>
<back><ack><p>This study was supported by Natural Science Foundation of China (81171429, 81511130089), Shanghai Pujiang Talent Program (13PJD018), and Foundation of Science and Technology Commission of Shanghai Municipality (14441901002, 15510722200). Dr. Dr. Jan Egger receives funding from the European grants ClinicIMPPACT (610886) and GoSmart (600641), and BioTechMed-Graz (“Hardware accelerated intelligent medical imaging”).</p>
</ack>
<ref-list><ref id="b1"><mixed-citation publication-type="journal"><name><surname>Ramasamy</surname>
<given-names>M.</given-names>
</name>
<italic>et al.</italic>
<article-title>Implant surgical guides: From the past to the present</article-title>
. <source>J. Pharm. Bioallied. Sci</source>
. <volume>5</volume>
, <fpage>S98</fpage>
–<lpage>S102</lpage>
(<year>2013</year>
).<pub-id pub-id-type="pmid">23946587</pub-id>
</mixed-citation>
</ref>
<ref id="b2"><mixed-citation publication-type="journal"><name><surname>Pesun</surname>
<given-names>I. J.</given-names>
</name>
& <name><surname>Gardner</surname>
<given-names>F. M.</given-names>
</name>
<article-title>Fabrication of a guide for radiographic evaluation and surgical placements of implants</article-title>
. <source>J. Prosthet. Dent.</source>
<volume>73</volume>
, <fpage>548</fpage>
–<lpage>552</lpage>
(<year>1995</year>
).<pub-id pub-id-type="pmid">11791266</pub-id>
</mixed-citation>
</ref>
<ref id="b3"><mixed-citation publication-type="journal"><name><surname>Kopp</surname>
<given-names>K. C.</given-names>
</name>
, <name><surname>Koslow</surname>
<given-names>A. H.</given-names>
</name>
& <name><surname>Abdo</surname>
<given-names>O. S.</given-names>
</name>
<article-title>Predictable implant placement with a diagnostic/surgical template and advanced radiographic imaging</article-title>
. <source>J. Prosthet. Dent.</source>
<volume>89</volume>
, <fpage>611</fpage>
–<lpage>615</lpage>
(<year>2003</year>
).<pub-id pub-id-type="pmid">12815357</pub-id>
</mixed-citation>
</ref>
<ref id="b4"><mixed-citation publication-type="journal"><name><surname>Dobbe</surname>
<given-names>J. G. G.</given-names>
</name>
, <name><surname>Pre</surname>
<given-names>K. J.</given-names>
</name>
, <name><surname>Kloen</surname>
<given-names>P.</given-names>
</name>
, <name><surname>Blankevoort</surname>
<given-names>L.</given-names>
</name>
& <name><surname>Streekstra</surname>
<given-names>G. J.</given-names>
</name>
<article-title>Computer-assisted and patient-specific 3-D planning and evaluation of a single-cut rotational osteotomy for complex long-bone deformities</article-title>
. <source>Med. Biol. Eng. Comput.</source>
<volume>49</volume>
, <fpage>1363</fpage>
–<lpage>1370</lpage>
(<year>2011</year>
).<pub-id pub-id-type="pmid">21947766</pub-id>
</mixed-citation>
</ref>
<ref id="b5"><mixed-citation publication-type="journal"><name><surname>Dobbe</surname>
<given-names>J. G. G.</given-names>
</name>
, <name><surname>Vroemen</surname>
<given-names>J. C.</given-names>
</name>
, <name><surname>Strackee</surname>
<given-names>S. D.</given-names>
</name>
& <name><surname>Streekstra</surname>
<given-names>G. J.</given-names>
</name>
<article-title>Patient-tailored plate for bone fixation and accurate 3D positioning in corrective osteotomy</article-title>
. <source>Med. Biol. Eng. Comput.</source>
<volume>51</volume>
, <fpage>19</fpage>
–<lpage>27</lpage>
(<year>2013</year>
).<pub-id pub-id-type="pmid">23054377</pub-id>
</mixed-citation>
</ref>
<ref id="b6"><mixed-citation publication-type="journal"><name><surname>Hu</surname>
<given-names>Y.</given-names>
</name>
<italic>et al.</italic>
<article-title>Deviation analysis of C2 translaminar screw placement assisted by a novel rapid prototyping drill template: a cadaveric study</article-title>
. <source>Eur. Spine J.</source>
<volume>22</volume>
, <fpage>2770</fpage>
–<lpage>2776</lpage>
(<year>2013</year>
).<pub-id pub-id-type="pmid">24005997</pub-id>
</mixed-citation>
</ref>
<ref id="b7"><mixed-citation publication-type="journal"><name><surname>Hirao</surname>
<given-names>M.</given-names>
</name>
<italic>et al.</italic>
<article-title>Computer assisted planning and custom-made surgical guide for malunited pronation deformity after first metatarsophalangeal joint arthrodesis in rheumatoid arthritis: A case report</article-title>
. <source>Comput. Aided Surg.</source>
<volume>19</volume>
, <fpage>13</fpage>
–<lpage>19</lpage>
(<year>2014</year>
).<pub-id pub-id-type="pmid">24720492</pub-id>
</mixed-citation>
</ref>
<ref id="b8"><mixed-citation publication-type="journal"><name><surname>Oka</surname>
<given-names>K.</given-names>
</name>
<italic>et al.</italic>
<article-title>Accuracy of corrective osteotomy using a custom-designed device based on a novel computer simulation system</article-title>
. <source>J. Orthop. Sci.</source>
<volume>16</volume>
, <fpage>85</fpage>
–<lpage>92</lpage>
(<year>2011</year>
).<pub-id pub-id-type="pmid">21359511</pub-id>
</mixed-citation>
</ref>
<ref id="b9"><mixed-citation publication-type="journal"><name><surname>Zhang</surname>
<given-names>Y. Z.</given-names>
</name>
<italic>et al.</italic>
<article-title>Preliminary application of computer-assisted patient-specific acetabular navigational template for total hip arthroplasty in adult single development dysplasia of the hip</article-title>
. <source>Int. J. Med. Robotics Comput. Assist Surg</source>
. <volume>7</volume>
, <fpage>469</fpage>
–<lpage>474</lpage>
(<year>2011</year>
).</mixed-citation>
</ref>
<ref id="b10"><mixed-citation publication-type="journal"><name><surname>Chen</surname>
<given-names>B.</given-names>
</name>
, <name><surname>Zhang</surname>
<given-names>Y.</given-names>
</name>
, <name><surname>Xiao</surname>
<given-names>S.</given-names>
</name>
& <name><surname>Gu</surname>
<given-names>P.</given-names>
</name>
& <name><surname>Lin</surname>
<given-names>X.</given-names>
</name>
<article-title>Personalized image-based templates for iliosacral screw insertions: a pilot study</article-title>
. <source>Int. J. Med. Robotics Comput. Assist Surg</source>
. <volume>8</volume>
, <fpage>476</fpage>
–<lpage>482</lpage>
(<year>2012</year>
).</mixed-citation>
</ref>
<ref id="b11"><mixed-citation publication-type="journal"><name><surname>Vasak</surname>
<given-names>C.</given-names>
</name>
<italic>et al.</italic>
<article-title>Computed tomography-based evaluation of template (NobelGuide<sup>TM</sup>
)-guided implant positions: a prospective radiological study</article-title>
. <source>Clin. Oral Impl. Res</source>
. <volume>22</volume>
, <fpage>1157</fpage>
–<lpage>1163</lpage>
(<year>2011</year>
).</mixed-citation>
</ref>
<ref id="b12"><mixed-citation publication-type="journal"><name><surname>Stockmans</surname>
<given-names>F.</given-names>
</name>
<article-title>Computer-assisted treatment of distal radius malunion</article-title>
. <source>Orthopreneur</source>
<volume>9</volume>
, <fpage>32</fpage>
–<lpage>35</lpage>
(<year>2010</year>
).</mixed-citation>
</ref>
<ref id="b13"><mixed-citation publication-type="journal"><name><surname>Vasak</surname>
<given-names>C.</given-names>
</name>
<italic>et al.</italic>
<article-title>Computed tomography-based evaluation of template (NobelGuidet)-guided implant positions: a prospective radiological study</article-title>
. <source>Clin. Oral Impl. Res</source>
. <volume>22</volume>
, <fpage>1157</fpage>
–<lpage>1163</lpage>
(<year>2011</year>
).</mixed-citation>
</ref>
<ref id="b14"><mixed-citation publication-type="journal"><name><surname>Boonen</surname>
<given-names>B.</given-names>
</name>
, <name><surname>Schotanus</surname>
<given-names>M. G. M.</given-names>
</name>
& <name><surname>Kort</surname>
<given-names>N. P.</given-names>
</name>
<article-title>Preliminary experience with the patient-specific templating total knee arthroplasty: 40 cases compared with a matched control group</article-title>
. <source>Acta. Orthopaedica.</source>
<volume>83</volume>
, <fpage>387</fpage>
–<lpage>393</lpage>
(<year>2012</year>
).<pub-id pub-id-type="pmid">22880715</pub-id>
</mixed-citation>
</ref>
<ref id="b15"><mixed-citation publication-type="journal"><name><surname>Flugge</surname>
<given-names>T. V.</given-names>
</name>
, <name><surname>Nelson</surname>
<given-names>K.</given-names>
</name>
, <name><surname>Schmelzeisen</surname>
<given-names>R.</given-names>
</name>
& <name><surname>Metzger</surname>
<given-names>M. C.</given-names>
</name>
<article-title>Three-Dimensional plotting and printing of an implant drilling guide: Simplifying guided implant surgery</article-title>
. <source>J. Oral Maxillofac. Surg.</source>
<volume>71</volume>
, <fpage>1340</fpage>
–<lpage>1346</lpage>
(<year>2013</year>
).<pub-id pub-id-type="pmid">23866950</pub-id>
</mixed-citation>
</ref>
<ref id="b16"><mixed-citation publication-type="journal"><name><surname>Shamir</surname>
<given-names>A.</given-names>
</name>
<article-title>A survey on mesh segmentation techniques. <italic>Comput. Graph</italic>
</article-title>
<source>Forum</source>
<volume>27</volume>
, <fpage>1539</fpage>
–<lpage>1556</lpage>
(<year>2008</year>
).</mixed-citation>
</ref>
<ref id="b17"><mixed-citation publication-type="journal"><name><surname>Jagannathan</surname>
<given-names>A.</given-names>
</name>
& <name><surname>Miller</surname>
<given-names>E. L.</given-names>
</name>
<article-title>Three-dimensional surface mesh segmentation using curvedness-based region growing approach</article-title>
. <source>IEEE T. Pattern Anal</source>
. <volume>29</volume>
, <fpage>2195</fpage>
–<lpage>2204</lpage>
(<year>2007</year>
).</mixed-citation>
</ref>
<ref id="b18"><mixed-citation publication-type="journal"><name><surname>Au</surname>
<given-names>O. K. C.</given-names>
</name>
, <name><surname>Zheng</surname>
<given-names>Y.</given-names>
</name>
, <name><surname>Chen</surname>
<given-names>M.</given-names>
</name>
, <name><surname>Xu</surname>
<given-names>P.</given-names>
</name>
& <name><surname>Tai</surname>
<given-names>C.</given-names>
</name>
<article-title>Mesh segmentation with concavity-aware fields</article-title>
. <source>IEEE T. Med. Img</source>
. <volume>18</volume>
, <fpage>1125</fpage>
–<lpage>1134</lpage>
(<year>2012</year>
).</mixed-citation>
</ref>
<ref id="b19"><mixed-citation publication-type="journal"><name><surname>Cohen-Steiner</surname>
<given-names>D.</given-names>
</name>
, <name><surname>Alliez</surname>
<given-names>P.</given-names>
</name>
& <name><surname>Desbrun</surname>
<given-names>M.</given-names>
</name>
<article-title>Variational shape approximation</article-title>
. <source>ACM T. Graphic</source>
<volume>23</volume>
, <fpage>905</fpage>
–<lpage>914</lpage>
(<year>2004</year>
).</mixed-citation>
</ref>
<ref id="b20"><mixed-citation publication-type="journal"><name><surname>Zhang</surname>
<given-names>E.</given-names>
</name>
, <name><surname>Mischaikow</surname>
<given-names>K.</given-names>
</name>
& <name><surname>Turk</surname>
<given-names>G.</given-names>
</name>
<article-title>Feature-based surface parameterization and texture mapping</article-title>
. <source>ACM T. Graphic</source>
<volume>24</volume>
, <fpage>1</fpage>
–<lpage>27</lpage>
(<year>2005</year>
).</mixed-citation>
</ref>
<ref id="b21"><mixed-citation publication-type="journal"><name><surname>Gregory</surname>
<given-names>A.</given-names>
</name>
, <name><surname>State</surname>
<given-names>A.</given-names>
</name>
, <name><surname>Lin</surname>
<given-names>M.</given-names>
</name>
, <name><surname>Manocha</surname>
<given-names>D.</given-names>
</name>
& <name><surname>Livingston</surname>
<given-names>M.</given-names>
</name>
<article-title>Interactive surface decomposition for polyhedral morphing</article-title>
. <source>Visual Comput.</source>
<volume>15</volume>
, <fpage>453</fpage>
–<lpage>470</lpage>
(<year>1999</year>
).</mixed-citation>
</ref>
<ref id="b22"><mixed-citation publication-type="journal"><name><surname>Wong</surname>
<given-names>K. C. H.</given-names>
</name>
, <name><surname>Siu</surname>
<given-names>T. Y. H.</given-names>
</name>
, <name><surname>Heng</surname>
<given-names>P. A.</given-names>
</name>
& <name><surname>Sun</surname>
<given-names>H.</given-names>
</name>
<source>Interactive volume cutting</source>
. Technical Report, Department of Computer Sicence and Engineering, Chinese University of Hong Kong (<year>1998</year>
).</mixed-citation>
</ref>
<ref id="b23"><mixed-citation publication-type="journal"><name><surname>Zockler</surname>
<given-names>M.</given-names>
</name>
, <name><surname>Stalling</surname>
<given-names>D.</given-names>
</name>
& <name><surname>Hege</surname>
<given-names>H.</given-names>
</name>
<article-title>Fast and intuitive generation of geometric shape transitions</article-title>
. <source>Visual Comput.</source>
<volume>16</volume>
, <fpage>241</fpage>
–<lpage>253</lpage>
(<year>2000</year>
).</mixed-citation>
</ref>
<ref id="b24"><mixed-citation publication-type="journal"><name><surname>Koc</surname>
<given-names>B.</given-names>
</name>
& <name><surname>Lee</surname>
<given-names>Y. S.</given-names>
</name>
<article-title>Non-uniform offsetting and hollowing objects by using biarcs fitting for rapid prototyping processes</article-title>
. <source>Comput. Ind.</source>
<volume>47</volume>
, <fpage>1</fpage>
–<lpage>23</lpage>
(<year>2002</year>
).</mixed-citation>
</ref>
<ref id="b25"><mixed-citation publication-type="journal"><name><surname>Jun</surname>
<given-names>C. S.</given-names>
</name>
, <name><surname>Kim</surname>
<given-names>D. S.</given-names>
</name>
& <name><surname>Park</surname>
<given-names>S.</given-names>
</name>
<article-title>A new curve-based approach to polyhedral machining</article-title>
. <source>Comput. Aided Des</source>
. <volume>34</volume>
, <fpage>379</fpage>
–<lpage>389</lpage>
(<year>2002</year>
).</mixed-citation>
</ref>
<ref id="b26"><mixed-citation publication-type="journal"><name><surname>Qu</surname>
<given-names>X.</given-names>
</name>
& <name><surname>Stucker</surname>
<given-names>B.</given-names>
</name>
<article-title>A 3D surface offset method for STL-format models</article-title>
. <source>Rapid Prototyping J.</source>
<volume>9</volume>
, <fpage>133</fpage>
–<lpage>141</lpage>
(<year>2003</year>
).</mixed-citation>
</ref>
<ref id="b27"><mixed-citation publication-type="journal"><name><surname>Kim</surname>
<given-names>S. J.</given-names>
</name>
, <name><surname>Lee</surname>
<given-names>D. Y.</given-names>
</name>
& <name><surname>Yang</surname>
<given-names>M. Y.</given-names>
</name>
<article-title>Offset triangular mesh using the multiple normal vectors of a vertex</article-title>
. <source>Computer-Aided Design and Applications</source>
<volume>1</volume>
, <fpage>285</fpage>
–<lpage>291</lpage>
(<year>2013</year>
).</mixed-citation>
</ref>
<ref id="b28"><mixed-citation publication-type="journal"><name><surname>Payne</surname>
<given-names>B. A.</given-names>
</name>
& <name><surname>Toga</surname>
<given-names>A. W.</given-names>
</name>
<article-title>Distance field manipulation of surface models</article-title>
. <source>IEEE Comput. Graph.</source>
<volume>12</volume>
, <fpage>65</fpage>
–<lpage>71</lpage>
(<year>1992</year>
).</mixed-citation>
</ref>
<ref id="b29"><mixed-citation publication-type="journal"><name><surname>Wang</surname>
<given-names>C. C. L.</given-names>
</name>
<article-title>Approximate boolean operations on large polyhedral solids with partial mesh reconstruction</article-title>
. <source>IEEE T. Vis. Comput. Gr</source>
. <volume>17</volume>
, <fpage>836</fpage>
–<lpage>849</lpage>
(<year>2011</year>
).</mixed-citation>
</ref>
<ref id="b30"><mixed-citation publication-type="journal"><name><surname>Feito</surname>
<given-names>F. R.</given-names>
</name>
, <name><surname>Ogayar</surname>
<given-names>C. J.</given-names>
</name>
, <name><surname>Segura</surname>
<given-names>R. J.</given-names>
</name>
& <name><surname>Rivero</surname>
<given-names>M. L.</given-names>
</name>
<article-title>Fast and accurate evaluation of regularized Boolean operations on triangulated solids</article-title>
. <source>Computer-Aided Design</source>
<volume>45</volume>
, <fpage>705</fpage>
–<lpage>716</lpage>
(<year>2013</year>
).</mixed-citation>
</ref>
<ref id="b31"><mixed-citation publication-type="journal"><name><surname>Fuchs</surname>
<given-names>H.</given-names>
</name>
, <name><surname>Kedem</surname>
<given-names>Z. M.</given-names>
</name>
& <name><surname>Uselton</surname>
<given-names>S. P.</given-names>
</name>
<article-title>Optimal surface reconstruction from planar contours</article-title>
. <source>Commun. ACM</source>
<volume>20</volume>
, <fpage>693</fpage>
–<lpage>702</lpage>
(<year>1977</year>
).</mixed-citation>
</ref>
<ref id="b32"><mixed-citation publication-type="journal"><name><surname>Chen</surname>
<given-names>X.</given-names>
</name>
, <name><surname>Yuan</surname>
<given-names>J.</given-names>
</name>
, <name><surname>Wang</surname>
<given-names>C.</given-names>
</name>
, <name><surname>Huang</surname>
<given-names>Y.</given-names>
</name>
& <name><surname>Kang</surname>
<given-names>L.</given-names>
</name>
<article-title>Modular preoperative planning software for computer-aided oral implantology and the application of a novel stereolithographic template: A pilot study</article-title>
. <source>Clin. Implant Dent. Relat. Res.</source>
<volume>12</volume>
, <fpage>181</fpage>
–<lpage>193</lpage>
(<year>2010</year>
).<pub-id pub-id-type="pmid">19438944</pub-id>
</mixed-citation>
</ref>
<ref id="b33"><mixed-citation publication-type="journal"><name><surname>Berry</surname>
<given-names>E.</given-names>
</name>
<italic>et al.</italic>
<article-title>Personalised image-based templates for intra-operative guidance</article-title>
. <source>Proc. Inst. Mech. Eng.</source>
<volume>219</volume>
, <fpage>111</fpage>
–<lpage>118</lpage>
(<year>2005</year>
).</mixed-citation>
</ref>
<ref id="b34"><mixed-citation publication-type="journal"><name><surname>Van den Broeck</surname>
<given-names>J.</given-names>
</name>
, <name><surname>Wirix-Speetjens</surname>
<given-names>R.</given-names>
</name>
& <name><surname>Sloten</surname>
<given-names>J. V.</given-names>
</name>
<article-title>Preoperative analysis of the stability of fit of a patient-specific surgical guide</article-title>
. <source>Computer Methods in Biomechanics and Biomedical Engineering</source>
<volume>18</volume>
, <fpage>38</fpage>
–<lpage>47</lpage>
(<year>2015</year>
).<pub-id pub-id-type="pmid">23627973</pub-id>
</mixed-citation>
</ref>
<ref id="b35"><mixed-citation publication-type="journal"><name><surname>Payne</surname>
<given-names>B. A.</given-names>
</name>
& <name><surname>Toga</surname>
<given-names>A. W.</given-names>
</name>
<article-title>Distance field manipulation of surface models</article-title>
. <source>IEEE Comput. Graph.</source>
<volume>12</volume>
, <fpage>65</fpage>
–<lpage>71</lpage>
(<year>1992</year>
).</mixed-citation>
</ref>
<ref id="b36"><mixed-citation publication-type="journal"><name><surname>Powell</surname>
<given-names>W. B.</given-names>
</name>
& <name><surname>Chen</surname>
<given-names>Z. L.</given-names>
</name>
<article-title>A generalized threshold algorithm for the shortest path problem with time windows</article-title>
. <source>In DIMACS Series in Discrete Mathematics, AMS</source>
<volume>40</volume>
, <fpage>303</fpage>
–<lpage>318</lpage>
(<year>1998</year>
).</mixed-citation>
</ref>
</ref-list>
<fn-group><fn><p><bold>Author Contributions</bold>
X.C. and L.X. conceived of the project, and designed the framework of the software. X.C., L.X. and Y.Y. proposed the new algorithms, developed the software and performed the experiments. X.C., L.X., Y.Y. and J.E. wrote the paper. All authors discussed the results and commented on the manuscript.</p>
</fn>
</fn-group>
</back>
<floats-group><fig id="f1"><label>Figure 1</label>
<caption><title>General workflow of the surgical template.</title>
</caption>
<graphic xlink:href="srep20280-f1"></graphic>
</fig>
<fig id="f2"><label>Figure 2</label>
<caption><title>A screenshot of the TemDesigner.</title>
</caption>
<graphic xlink:href="srep20280-f2"></graphic>
</fig>
<fig id="f3"><label>Figure 3</label>
<caption><title>A typical template design process for oral implantology with TemDesigner:</title>
<p>(<bold>1</bold>
) Import the 3D model and indicate points surrounding the target region. The curve will be generated and updated dynamically; (<bold>2</bold>
) The target region is determined by the closed curve; (<bold>3</bold>
) Initial template without drilling tubes is generated automatically; (<bold>4</bold>
) Import the axes of virtual implants; (<bold>5,6</bold>
) Final template is generated.</p>
</caption>
<graphic xlink:href="srep20280-f3"></graphic>
</fig>
<fig id="f4"><label>Figure 4</label>
<caption><title>Template design for cervical pedicle screw placement:</title>
<p>(<bold>1,2</bold>
) Model of cervical vertebrae. White curve indicates the target region—border of the inner surface; (<bold>3</bold>
) Initial template generation; (<bold>4</bold>
) Blue line segments show the axes of virtual implants; (<bold>5</bold>
) Final template positioned on surgical site; (<bold>6</bold>
) Vertical view and inner surface of the template.</p>
</caption>
<graphic xlink:href="srep20280-f4"></graphic>
</fig>
<fig id="f5"><label>Figure 5</label>
<caption><title>Template design for iliosacral screw insertion:</title>
<p>(<bold>1,2</bold>
) Model of the pelvis. White curve indicates the target region; (<bold>3</bold>
) Initial template and axis of the drilling tube; (<bold>4</bold>
) Final template positioned on surgical site; (<bold>5</bold>
) Outer surface of the template; (<bold>6</bold>
) Inner surface of the template.</p>
</caption>
<graphic xlink:href="srep20280-f5"></graphic>
</fig>
<fig id="f6"><label>Figure 6</label>
<caption><title>Template design for osteotomy:</title>
<p>(<bold>1</bold>
) Model of the bone. White curve indicates the target region; (<bold>2</bold>
) Final template positioned on surgical site. The bone will be sectioned along the borderline of the template; (<bold>3,4</bold>
) Different perspectives of the template.</p>
</caption>
<graphic xlink:href="srep20280-f6"></graphic>
</fig>
<fig id="f7"><label>Figure 7</label>
<caption><p>(<bold>1a–4a</bold>
): The 3D-printed surgical templates and the adjacent tissue models (<bold>1a</bold>
): mandibular phantom, (<bold>2a</bold>
): part of cervical vertebrae phantom, (<bold>3a</bold>
): part of cervical vertebrae phantom, (<bold>4a</bold>
): part of bone phantom); (<bold>1b–4b</bold>
): Matching of the surgical template with the adjacent tissue models.</p>
</caption>
<graphic xlink:href="srep20280-f7"></graphic>
</fig>
<fig id="f8"><label>Figure 8</label>
<caption><title>The workflow of Method 1 for the template design.</title>
</caption>
<graphic xlink:href="srep20280-f8"></graphic>
</fig>
<fig id="f9"><label>Figure 9</label>
<caption><title>General framework of semi-automatic surgical template design.</title>
</caption>
<graphic xlink:href="srep20280-f9"></graphic>
</fig>
<fig id="f10"><label>Figure 10</label>
<caption><p>Mesh edge tracking process: Among all neighbor vertices of <italic>A0</italic>
, i.e. <italic>B</italic>
<sub><italic>0</italic>
</sub>
, <italic>B</italic>
<sub><italic>1</italic>
</sub>
, <italic>B</italic>
<sub><italic>2</italic>
</sub>
, <italic>B</italic>
<sub><italic>3</italic>
</sub>
, <italic>B</italic>
<sub><italic>4</italic>
</sub>
, <italic>B</italic>
<sub><italic>5</italic>
</sub>
, only <italic>B</italic>
<sub><italic>0</italic>
</sub>
, <italic>B</italic>
<sub><italic>1</italic>
</sub>
, and <italic>B</italic>
<sub><italic>2</italic>
</sub>
meet the condition <<italic>A</italic>
<sub><italic>0</italic>
</sub>
<italic>A</italic>
<sub><italic>1</italic>
</sub>
, <italic>A</italic>
<sub><italic>0</italic>
</sub>
<italic>B</italic>
<sub><italic>i</italic>
</sub>
> ϵ [0⁰, 90⁰]. Because <italic>B</italic>
<sub><italic>1</italic>
</sub>
is closest to <italic>A</italic>
<sub><italic>0</italic>
</sub>
<italic>A</italic>
<sub><italic>1</italic>
</sub>
, it is inserted to <italic>List_Vertex</italic>
. Pink segment of <italic>List_InitialPoints</italic>
: the initial segment of user placed points; Red segment of <italic>List_ClosestPoints</italic>
: the segment of closest points; Blue polyline of <italic>List_Vertex</italic>
: the polyline strictly going along the edges of the mesh.</p>
</caption>
<graphic xlink:href="srep20280-f10"></graphic>
</fig>
<fig id="f11"><label>Figure 11</label>
<caption><p>An example of clipping with signed distance: The scalars of <italic>P</italic>
<sub><italic>0</italic>
</sub>
, <italic>P</italic>
<sub><italic>1</italic>
</sub>
, <italic>P</italic>
<sub><italic>2</italic>
</sub>
are respectively −5, 3, 8. i) −5 × 3 < 0. Then, <italic>Q</italic>
<sub><italic>0</italic>
</sub>
is linearly interpolated at zero within segment <italic>P</italic>
<sub><italic>0</italic>
</sub>
<italic>P</italic>
<sub><italic>1</italic>
</sub>
. ii) 3 × 8 > 0. So, <italic>Q</italic>
<sub><italic>1</italic>
</sub>
is the same as <italic>P</italic>
<sub><italic>1</italic>
</sub>
. iii) 8 × (−5) < 0, so <italic>Q</italic>
<sub><italic>2</italic>
</sub>
is linearly interpolated at zero. The new triangle Δ<italic>Q</italic>
<sub><italic>0</italic>
</sub>
<italic>Q</italic>
<sub><italic>1</italic>
</sub>
<italic>Q</italic>
<sub><italic>2</italic>
</sub>
divides the original one Δ<italic>P</italic>
<sub><italic>0</italic>
</sub>
<italic>P</italic>
<sub><italic>1</italic>
</sub>
<italic>P</italic>
<sub><italic>2</italic>
</sub>
into three triangles.</p>
</caption>
<graphic xlink:href="srep20280-f11"></graphic>
</fig>
<fig id="f12"><label>Figure 12</label>
<caption><title>Mesh segmentation: The white curve is generated with user points to indicate a target region.</title>
</caption>
<graphic xlink:href="srep20280-f12"></graphic>
</fig>
<fig id="f13"><label>Figure 13</label>
<caption><title>Offset surface generation: the inner surface of an oral implantology template (left) and the offset surface of the inner surface (right).</title>
</caption>
<graphic xlink:href="srep20280-f13"></graphic>
</fig>
<fig id="f14"><label>Figure 14</label>
<caption><p>(<bold>1</bold>
) Directed single layer weighted graph <italic>G-(V, A)</italic>
. (<bold>2,3</bold>
) The triangle organization of ruled surface corresponds to the red nodes in the first one.</p>
</caption>
<graphic xlink:href="srep20280-f14"></graphic>
</fig>
<fig id="f15"><label>Figure 15</label>
<caption><title>Automatic connection of inner and outer surfaces of oral implantology template.</title>
</caption>
<graphic xlink:href="srep20280-f15"></graphic>
</fig>
<fig id="f16"><label>Figure 16</label>
<caption><title>Boolean operation of initial template for oral implantology and drilling tubes.</title>
</caption>
<graphic xlink:href="srep20280-f16"></graphic>
</fig>
<table-wrap position="float" id="t1"><label>Table 1</label>
<caption><title>Scale of Input Models and the Runtime (Sampling step refers to the step of sampling inner surface edge points in progress of point generation for outer surface clipping).</title>
</caption>
<table frame="hsides" rules="groups" border="1"><colgroup><col align="left"></col>
<col align="center"></col>
<col align="center"></col>
<col align="center"></col>
<col align="center"></col>
<col align="center"></col>
<col align="center"></col>
<col align="center"></col>
<col align="center"></col>
</colgroup>
<thead valign="bottom"><tr><th align="left" valign="top" charoff="50"> </th>
<th colspan="2" align="center" valign="top" charoff="50">Oral implantology</th>
<th colspan="2" align="center" valign="top" charoff="50">Iliosacral screw insertion</th>
<th colspan="2" align="center" valign="top" charoff="50">Cervical pedicle screw placement</th>
<th colspan="2" align="center" valign="top" charoff="50">Osteotomy</th>
</tr>
</thead>
<tbody valign="top"><tr><td rowspan="7" align="left" valign="top" charoff="50">Number</td>
<td align="center" valign="top" charoff="50">Sampling step</td>
<td align="center" valign="top" charoff="50">20</td>
<td align="center" valign="top" charoff="50">5</td>
<td align="center" valign="top" charoff="50">20</td>
<td align="center" valign="top" charoff="50">10</td>
<td align="center" valign="top" charoff="50">20</td>
<td align="center" valign="top" charoff="50">5</td>
<td align="center" valign="top" charoff="50">10</td>
</tr>
<tr><td align="center" valign="top" charoff="50">Triangles of input mesh</td>
<td align="center" valign="top" charoff="50">213410</td>
<td align="center" valign="top" charoff="50">1073058</td>
<td align="center" valign="top" charoff="50">1073058</td>
<td align="center" valign="top" charoff="50">38082</td>
<td align="center" valign="top" charoff="50">38082</td>
<td align="center" valign="top" charoff="50">149054</td>
<td align="center" valign="top" charoff="50">149054</td>
</tr>
<tr><td align="center" valign="top" charoff="50">Points of input mesh</td>
<td align="center" valign="top" charoff="50">106707</td>
<td align="center" valign="top" charoff="50">534619</td>
<td align="center" valign="top" charoff="50">534619</td>
<td align="center" valign="top" charoff="50">19146</td>
<td align="center" valign="top" charoff="50">19146</td>
<td align="center" valign="top" charoff="50">73813</td>
<td align="center" valign="top" charoff="50">73813</td>
</tr>
<tr><td align="center" valign="top" charoff="50">Edge points of inner surface</td>
<td align="center" valign="top" charoff="50">1645</td>
<td align="center" valign="top" charoff="50">565</td>
<td align="center" valign="top" charoff="50">555</td>
<td align="center" valign="top" charoff="50">266</td>
<td align="center" valign="top" charoff="50">252</td>
<td align="center" valign="top" charoff="50">290</td>
<td align="center" valign="top" charoff="50">292</td>
</tr>
<tr><td align="center" valign="top" charoff="50">Triangles of inner surface</td>
<td align="center" valign="top" charoff="50">41177</td>
<td align="center" valign="top" charoff="50">6967</td>
<td align="center" valign="top" charoff="50">6959</td>
<td align="center" valign="top" charoff="50">1240</td>
<td align="center" valign="top" charoff="50">1186</td>
<td align="center" valign="top" charoff="50">1300</td>
<td align="center" valign="top" charoff="50">1194</td>
</tr>
<tr><td align="center" valign="top" charoff="50">Points of inner surface</td>
<td align="center" valign="top" charoff="50">21412</td>
<td align="center" valign="top" charoff="50">3767</td>
<td align="center" valign="top" charoff="50">3758</td>
<td align="center" valign="top" charoff="50">754</td>
<td align="center" valign="top" charoff="50">720</td>
<td align="center" valign="top" charoff="50">796</td>
<td align="center" valign="top" charoff="50">744</td>
</tr>
<tr><td align="center" valign="top" charoff="50">Drilling tubes</td>
<td align="center" valign="top" charoff="50">5</td>
<td align="center" valign="top" charoff="50">1</td>
<td align="center" valign="top" charoff="50">1</td>
<td align="center" valign="top" charoff="50">2</td>
<td align="center" valign="top" charoff="50">2</td>
<td align="center" valign="top" charoff="50">0</td>
<td align="center" valign="top" charoff="50">0</td>
</tr>
<tr><td rowspan="7" align="left" valign="top" charoff="50">Time(s)</td>
<td align="center" valign="top" charoff="50">Inner surface segmentation</td>
<td align="center" valign="top" charoff="50">7.956</td>
<td align="center" valign="top" charoff="50">13.837</td>
<td align="center" valign="top" charoff="50">12.643</td>
<td align="center" valign="top" charoff="50">0.796</td>
<td align="center" valign="top" charoff="50">0.671</td>
<td align="center" valign="top" charoff="50">2.028</td>
<td align="center" valign="top" charoff="50">3.214</td>
</tr>
<tr><td align="center" valign="top" charoff="50">Offset of inner surface</td>
<td align="center" valign="top" charoff="50">11.793</td>
<td align="center" valign="top" charoff="50">1.576</td>
<td align="center" valign="top" charoff="50">1.545</td>
<td align="center" valign="top" charoff="50">1.357</td>
<td align="center" valign="top" charoff="50">1.341</td>
<td align="center" valign="top" charoff="50">1.778</td>
<td align="center" valign="top" charoff="50">1.513</td>
</tr>
<tr><td align="center" valign="top" charoff="50">Generation of points for outer surface segmentation</td>
<td align="center" valign="top" charoff="50">7.301</td>
<td align="center" valign="top" charoff="50">5.787</td>
<td align="center" valign="top" charoff="50">2.075</td>
<td align="center" valign="top" charoff="50">2.683</td>
<td align="center" valign="top" charoff="50">2.34</td>
<td align="center" valign="top" charoff="50">6.614</td>
<td align="center" valign="top" charoff="50">3.728</td>
</tr>
<tr><td align="center" valign="top" charoff="50">Outer surface segmentation</td>
<td align="center" valign="top" charoff="50">3.557</td>
<td align="center" valign="top" charoff="50">2.403</td>
<td align="center" valign="top" charoff="50">2.511</td>
<td align="center" valign="top" charoff="50">3.011</td>
<td align="center" valign="top" charoff="50">3.073</td>
<td align="center" valign="top" charoff="50">4.758</td>
<td align="center" valign="top" charoff="50">4.025</td>
</tr>
<tr><td align="center" valign="top" charoff="50">Connection of inner and outer surfaces</td>
<td align="center" valign="top" charoff="50">0.609</td>
<td align="center" valign="top" charoff="50">0.203</td>
<td align="center" valign="top" charoff="50">0.172</td>
<td align="center" valign="top" charoff="50">0.141</td>
<td align="center" valign="top" charoff="50">0.14</td>
<td align="center" valign="top" charoff="50">0.187</td>
<td align="center" valign="top" charoff="50">0.156</td>
</tr>
<tr><td align="center" valign="top" charoff="50">Initial template generation</td>
<td align="center" valign="top" charoff="50">31.216</td>
<td align="center" valign="top" charoff="50">23.806</td>
<td align="center" valign="top" charoff="50">18.946</td>
<td align="center" valign="top" charoff="50">7.988</td>
<td align="center" valign="top" charoff="50">7.565</td>
<td align="center" valign="top" charoff="50">15.365</td>
<td align="center" valign="top" charoff="50">12.636</td>
</tr>
<tr><td align="center" valign="top" charoff="50">Runtime of Boolean operation(s)</td>
<td align="center" valign="top" charoff="50">16.723</td>
<td align="center" valign="top" charoff="50">2.621</td>
<td align="center" valign="top" charoff="50">–</td>
<td align="center" valign="top" charoff="50">4.977</td>
<td align="center" valign="top" charoff="50">–</td>
<td align="center" valign="top" charoff="50">–</td>
<td align="center" valign="top" charoff="50">–</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap position="float" id="t2"><label>Table 2</label>
<caption><title>Observations and comparison among commercial software packages and our proposed method.</title>
</caption>
<table frame="hsides" rules="groups" border="1"><colgroup><col align="left"></col>
<col align="center"></col>
<col align="center"></col>
<col align="center"></col>
<col align="center"></col>
</colgroup>
<thead valign="bottom"><tr><th colspan="2" align="left" valign="top" charoff="50"> </th>
<th align="center" valign="top" charoff="50">Method 1: Using the Imageware, UG, and Magics RP togther</th>
<th align="center" valign="top" charoff="50">Method 2: Using 3-matic (Materialise, Leuven, Belgium)</th>
<th align="center" valign="top" charoff="50">Method 3: Using TemDesigner</th>
</tr>
</thead>
<tbody valign="top"><tr><td rowspan="3" align="left" valign="top" charoff="50">Oral implantology</td>
<td align="center" valign="top" charoff="50">Time(h)</td>
<td align="center" valign="top" charoff="50">2-3</td>
<td align="center" valign="top" charoff="50">1-2</td>
<td align="center" valign="top" charoff="50">0.2-0.3</td>
</tr>
<tr><td align="center" valign="top" charoff="50">User interaction</td>
<td align="center" valign="top" charoff="50">Very Complicated</td>
<td align="center" valign="top" charoff="50">Complicated</td>
<td align="center" valign="top" charoff="50">Simple and Easy</td>
</tr>
<tr><td align="center" valign="top" charoff="50">Required user experience</td>
<td align="center" valign="top" charoff="50">Very High</td>
<td align="center" valign="top" charoff="50">High</td>
<td align="center" valign="top" charoff="50">Low</td>
</tr>
<tr><td rowspan="3" align="left" valign="top" charoff="50">Iliosacral screw insertion</td>
<td align="center" valign="top" charoff="50">Time(h)</td>
<td align="center" valign="top" charoff="50">1-2</td>
<td align="center" valign="top" charoff="50">0.5-1</td>
<td align="center" valign="top" charoff="50">0.2-0.3</td>
</tr>
<tr><td align="center" valign="top" charoff="50">User interaction</td>
<td align="center" valign="top" charoff="50">Very Complicated</td>
<td align="center" valign="top" charoff="50">Complicated</td>
<td align="center" valign="top" charoff="50">Simple and Easy</td>
</tr>
<tr><td align="center" valign="top" charoff="50">Required user experience</td>
<td align="center" valign="top" charoff="50">Very High</td>
<td align="center" valign="top" charoff="50">Medium</td>
<td align="center" valign="top" charoff="50">Low</td>
</tr>
<tr><td rowspan="3" align="left" valign="top" charoff="50">Cervical pedicle screw placement</td>
<td align="center" valign="top" charoff="50">Time(h)</td>
<td align="center" valign="top" charoff="50">2-3</td>
<td align="center" valign="top" charoff="50">1-2</td>
<td align="center" valign="top" charoff="50">0.2-0.3</td>
</tr>
<tr><td align="center" valign="top" charoff="50">User interaction</td>
<td align="center" valign="top" charoff="50">Very Complicated</td>
<td align="center" valign="top" charoff="50">Complicated</td>
<td align="center" valign="top" charoff="50">Simple and Easy</td>
</tr>
<tr><td align="center" valign="top" charoff="50">Required user experience</td>
<td align="center" valign="top" charoff="50">Very High</td>
<td align="center" valign="top" charoff="50">High</td>
<td align="center" valign="top" charoff="50">Low</td>
</tr>
<tr><td rowspan="3" align="left" valign="top" charoff="50">Osteotomy</td>
<td align="center" valign="top" charoff="50">Time(h)</td>
<td align="center" valign="top" charoff="50">0.5-1</td>
<td align="center" valign="top" charoff="50">0.5-1</td>
<td align="center" valign="top" charoff="50">0.2</td>
</tr>
<tr><td align="center" valign="top" charoff="50">User interaction</td>
<td align="center" valign="top" charoff="50">Very Complicated</td>
<td align="center" valign="top" charoff="50">Complicated</td>
<td align="center" valign="top" charoff="50">Simple and Easy</td>
</tr>
<tr><td align="center" valign="top" charoff="50">Required user experience</td>
<td align="center" valign="top" charoff="50">Very High</td>
<td align="center" valign="top" charoff="50">Medium</td>
<td align="center" valign="top" charoff="50">Low</td>
</tr>
</tbody>
</table>
</table-wrap>
</floats-group>
</pmc>
</record>
Pour manipuler ce document sous Unix (Dilib)
EXPLOR_STEP=$WICRI_ROOT/Wicri/Santé/explor/EdenteV2/Data/Pmc/Corpus
HfdSelect -h $EXPLOR_STEP/biblio.hfd -nk 0008318 | SxmlIndent | more
Ou
HfdSelect -h $EXPLOR_AREA/Data/Pmc/Corpus/biblio.hfd -nk 0008318 | SxmlIndent | more
Pour mettre un lien sur cette page dans le réseau Wicri
{{Explor lien |wiki= Wicri/Santé |area= EdenteV2 |flux= Pmc |étape= Corpus |type= RBID |clé= |texte= }}
![]() | This area was generated with Dilib version V0.6.32. | ![]() |