Dr Stuart Myers

 

Anatomy



The extensor tendon mechanism on the back (Dorsal side)  of a finger is an extremely delicate & complex structure.
The tendon divides into 3 slips or bands, which insert onto different bones in the finger. There are
2 lateral bands & 1 central slip. Because the bands lie above the centre of rotation of both joints
they act to extend or straighten the finger.

Tendons on the front ( Volar Side) of the finger are benders ( Flexors) of the finger.


Injury

A Boutonniere (or Buttonhole) deformity arises when there is a rupture of the central slip of the extensor
mechanism. This is an uncommon sporting injury usually due to an end on injury to the finger with
sudden bending at the P.I.P. joint (often in football or basketball).


Deformity

                                      


Central slip rupture may result in the gradual development of bending at the PIP joint & over-
straightening at the DIP or end joint of the finger. When one tries to make a fist the D.I.P.
joint does not bend normally.

     

The typical deformity may not come on straight away & so it is quite frequent that the severity of
the injury is not initially recognised. The lateral bands gradually slide sideways around the finger.
When they pass the centre of rotation of the PIP joint they act to bend this joint rather than
straighten it. If the deformity is present for some time this bend may become fixed (hence more difficult to correct).

             


An understanding of the development of the deformity is critical in understanding the treatment
required.

                 

 

Normally the extensor tendon straightens the finger. If there is a central slip rupture no force
passes through the central slip no matter how hard the muscle contracts. In an attempt to
straighten the PIP joint increasing force is exerted through the lateral bands & the DIP joint
over-straightens.


Treatment Rationale

 


Treatment

1. Achieve full straightening at PIP joint. This requires prolonged stretching. Care should be taken
while doing this to avoid applying force across the DIP joint - this will only make the deformity worse.


2. Bend the DIP joint while holding the PIP joint straight. This has 2 effects. It regains movement
at the DIP joint. It also acts to centralise the Lateral bands. In so doing it drives the lateral bands
above the centre of rotation of the PIP joint & turns the lateral bands into straighteners rather
than benders of this joint.

                           

3. Allow the central slip to heal. This requires a period of splintage with the finger held completely
straight for 3 -6 weeks & then a variable period of dynamic splintage (using a Capener splint) for
up to 3 months.

              

During this period you will require regular review by the hand therapist who makes these splints.


4. Surgery is occasionally required to correct the deformity (especially if long-standing deformity).
Due to the delicate nature of the extensor mechanism stiffness following surgery is a problem.

 


LAST UPDATED ON SATURDAY, 27 February 2015

10.309MBMemory Usage191msRequest Duration
Joomla! Version4.4.12
PHP Version8.2.18
Identityguest
Response200
Templatert_studius
Database
Server
mysql
Version
5.7.23-23
Collation
utf8_general_ci
Conn Collation
utf8mb4_general_ci
$_GET
[]
$_POST
[]
$_SESSION
array:1 [ "joomla" => "***redacted***" ]
$_COOKIE
[]
$_SERVER
array:76 [ "LSPHP_ENABLE_USER_INI" => "on" "PATH" => "/usr/local/bin:/usr/bin:/bin" "TEMP" => ...
session
array:3 [ "counter" => 1 "timer" => array:3 [ "start" => 1747621267 "last" => 1747621267...
registry
array:3 [ "data" => [] "initialized" => false "separator" => "." ]
user
array:18 [ "id" => 0 "name" => null "username" => null "email" => null "password" => "***r...
  • afterLoad (471.7KB) (2.92ms)
  • afterInitialise (1.08MB) (22.62ms)
  • afterRoute (1.13MB) (14.19ms)
  • beforeRenderComponent com_content (42.34KB) (5.47ms)
  • Before Access::preloadComponents (all components) (61.81KB) (1.38ms)
  • After Access::preloadComponents (all components) (115.78KB) (2.01ms)
  • Before Access::preloadPermissions (com_content) (1.7KB) (20μs)
  • After Access::preloadPermissions (com_content) (416.46KB) (2.69ms)
  • Before Access::getAssetRules (id:193 name:com_content.article.88) (18.65KB) (71μs)
  • After Access::getAssetRules (id:193 name:com_content.article.88) (7.47KB) (120μs)
  • afterRenderComponent com_content (895.26KB) (20.99ms)
  • afterDispatch (2.91KB) (226μs)
  • beforeRenderRawModule mod_custom (Responsive Logo) (3.37MB) (72.52ms)
  • afterRenderRawModule mod_custom (Responsive Logo) (4.4KB) (669μs)
  • beforeRenderModule mod_custom (Responsive Logo) (720B) (11μs)
  • afterRenderModule mod_custom (Responsive Logo) (2.8KB) (182μs)
  • afterRender (1.18MB) (43.99ms)
  • 1 x beforeRenderRawModule mod_custom (Responsive Logo) (3.37MB) (37.88%)
    72.52ms
    1 x afterRender (1.18MB) (22.98%)
    43.99ms
    1 x afterInitialise (1.08MB) (11.82%)
    22.62ms
    1 x afterRenderComponent com_content (895.26KB) (10.96%)
    20.99ms
    1 x afterRoute (1.13MB) (7.41%)
    14.19ms
    1 x beforeRenderComponent com_content (42.34KB) (2.86%)
    5.47ms
    1 x afterLoad (471.7KB) (1.52%)
    2.92ms
    1 x After Access::preloadPermissions (com_content) (416.46KB) (1.41%)
    2.69ms
    1 x After Access::preloadComponents (all components) (115.78KB) (1.05%)
    2.01ms
    1 x Before Access::preloadComponents (all components) (61.81KB) (0.72%)
    1.38ms
    1 x afterRenderRawModule mod_custom (Responsive Logo) (4.4KB) (0.35%)
    669μs
    1 x afterDispatch (2.91KB) (0.12%)
    226μs
    1 x afterRenderModule mod_custom (Responsive Logo) (2.8KB) (0.1%)
    182μs
    1 x After Access::getAssetRules (id:193 name:com_content.article.88) (7.47KB) (0.06%)
    120μs
    1 x Before Access::getAssetRules (id:193 name:com_content.article.88) (18.65KB) (0.04%)
    71μs
    1 x Before Access::preloadPermissions (com_content) (1.7KB) (0.01%)
    20μs
    1 x beforeRenderModule mod_custom (Responsive Logo) (720B) (0.01%)
    11μs
27 statements were executed, 2 of which were duplicates, 25 unique27.22ms616.75KB
  • SELECT @@SESSION.sql_mode;126μs968B/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:334Copy
  • SELECT `data` FROM `romby_session` WHERE `session_id` = ?158μs1008BParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:261Copy
  • SELECT `session_id` FROM `romby_session` WHERE `session_id` = :session_id LIMIT 1155μs1.3KBParams/libraries/src/Session/MetadataManager.php:187Copy
  • INSERT INTO `romby_session` (`session_id`,`guest`,`time`,`userid`,`username`,`client_id`) VALUES (:session_id, :guest, :time, :user_id, :username, :client_id)247μs944BParams/libraries/src/Session/MetadataManager.php:260Copy
  • SELECT `extension_id` AS `id`,`element` AS `option`,`params`,`enabled` FROM `romby_extensions` WHERE `type` = 'component' AND `state` = 0 AND `enabled` = 1440μs1.73KB/libraries/src/Component/ComponentHelper.php:399Copy
  • SELECT `id`,`rules` FROM `romby_viewlevels`141μs656B/libraries/src/Access/Access.php:955Copy
  • SELECT `b`.`id` FROM `romby_usergroups` AS `a` LEFT JOIN `romby_usergroups` AS `b` ON `b`.`lft` <= `a`.`lft` AND `b`.`rgt` >= `a`.`rgt` WHERE `a`.`id` = :guest244μs1.33KBParams/libraries/src/Access/Access.php:868Copy
  • SELECT `folder` AS `type`,`element` AS `name`,`params` AS `params`,`extension_id` AS `id` FROM `romby_extensions` WHERE `enabled` = 1 AND `type` = 'plugin' AND `state` IN (0,1) AND `access` IN (:preparedArray1,:preparedArray2) ORDER BY `ordering`1.62ms4.48KBParams/libraries/src/Plugin/PluginHelper.php:294Copy
  • SELECT `m`.`id`,`m`.`menutype`,`m`.`title`,`m`.`alias`,`m`.`note`,`m`.`link`,`m`.`type`,`m`.`level`,`m`.`language`,`m`.`browserNav`,`m`.`access`,`m`.`params`,`m`.`home`,`m`.`img`,`m`.`template_style_id`,`m`.`component_id`,`m`.`parent_id`,`m`.`path` AS `route`,`e`.`element` AS `component` FROM `romby_menu` AS `m` LEFT JOIN `romby_extensions` AS `e` ON `m`.`component_id` = `e`.`extension_id` WHERE ( (`m`.`published` = 1 AND `m`.`parent_id` > 0 AND `m`.`client_id` = 0) AND (`m`.`publish_up` IS NULL OR `m`.`publish_up` <= :currentDate1)) AND (`m`.`publish_down` IS NULL OR `m`.`publish_down` >= :currentDate2) ORDER BY `m`.`lft`4.24ms443.92KBParams/libraries/src/Menu/SiteMenu.php:166Copy
  • SELECT `id`,`home`,`template`,`s`.`params`,`inheritable`,`parent` FROM `romby_template_styles` AS `s` LEFT JOIN `romby_extensions` AS `e` ON `e`.`element` = `s`.`template` AND `e`.`type` = 'template' AND `e`.`client_id` = `s`.`client_id` WHERE `s`.`client_id` = 0 AND `e`.`enabled` = 1260μs864B/administrator/components/com_templates/src/Model/StyleModel.php:773Copy
  • SELECT s.id, s.template, s.home, s.title AS long_title, s.params FROM romby_template_styles AS s WHERE s.client_id = 0 AND s.template = 'rt_studius' ORDER BY s.id243μs784B/libraries/gantry5/src/classes/Gantry/Joomla/StyleHelper.php:69Copy
  • SELECT * FROM `romby_languages` WHERE `published` = 1 ORDER BY `ordering` ASC3.93ms1.59KB/libraries/src/Language/LanguageHelper.php:142Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `romby_assets` WHERE `name` IN (:preparedArray1,:preparedArray2,:preparedArray3,:preparedArray4,:preparedArray5,:preparedArray6,:preparedArray7,:preparedArray8,:preparedArray9,:preparedArray10,:preparedArray11,:preparedArray12,:preparedArray13,:preparedArray14,:preparedArray15,:preparedArray16,:preparedArray17,:preparedArray18,:preparedArray19,:preparedArray20,:preparedArray21,:preparedArray22,:preparedArray23,:preparedArray24,:preparedArray25,:preparedArray26,:preparedArray27,:preparedArray28,:preparedArray29,:preparedArray30,:preparedArray31,:preparedArray32,:preparedArray33,:preparedArray34,:preparedArray35,:preparedArray36,:preparedArray37,:preparedArray38,:preparedArray39,:preparedArray40,:preparedArray41,:preparedArray42,:preparedArray43)1.22ms7.81KBParams/libraries/src/Access/Access.php:357Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `romby_assets` WHERE `name` LIKE :asset OR `name` = :extension OR `parent_id` = 01.7ms61.48KBParams/libraries/src/Access/Access.php:301Copy
  • SHOW FULL COLUMNS FROM `romby_content`831μs1.77KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:625Copy
  • UPDATE `romby_content` SET `hits` = (`hits` + 1) WHERE `id` = '88'318μs48B/libraries/src/Table/Table.php:1325Copy
  • SELECT `a`.`id`,`a`.`asset_id`,`a`.`title`,`a`.`alias`,`a`.`introtext`,`a`.`fulltext`,`a`.`state`,`a`.`catid`,`a`.`created`,`a`.`created_by`,`a`.`created_by_alias`,`a`.`modified`,`a`.`modified_by`,`a`.`checked_out`,`a`.`checked_out_time`,`a`.`publish_up`,`a`.`publish_down`,`a`.`images`,`a`.`urls`,`a`.`attribs`,`a`.`version`,`a`.`ordering`,`a`.`metakey`,`a`.`metadesc`,`a`.`access`,`a`.`hits`,`a`.`metadata`,`a`.`featured`,`a`.`language`,`fp`.`featured_up`,`fp`.`featured_down`,`c`.`title` AS `category_title`,`c`.`alias` AS `category_alias`,`c`.`access` AS `category_access`,`c`.`language` AS `category_language`,`fp`.`ordering`,`u`.`name` AS `author`,`parent`.`title` AS `parent_title`,`parent`.`id` AS `parent_id`,`parent`.`path` AS `parent_route`,`parent`.`alias` AS `parent_alias`,`parent`.`language` AS `parent_language`,ROUND(`v`.`rating_sum` / `v`.`rating_count`, 1) AS `rating`,`v`.`rating_count` AS `rating_count` FROM `romby_content` AS `a` INNER JOIN `romby_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `romby_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` LEFT JOIN `romby_users` AS `u` ON `u`.`id` = `a`.`created_by` LEFT JOIN `romby_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `romby_content_rating` AS `v` ON `a`.`id` = `v`.`content_id` WHERE ( (`a`.`id` = :pk AND `c`.`published` > 0) AND (`a`.`publish_up` IS NULL OR `a`.`publish_up` <= :publishUp)) AND (`a`.`publish_down` IS NULL OR `a`.`publish_down` >= :publishDown) AND `a`.`state` IN (:preparedArray1,:preparedArray2)798μs23.38KBParams/components/com_content/src/Model/ArticleModel.php:215Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `romby_categories` AS `s` INNER JOIN `romby_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`993μs3.94KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `m`.`tag_id`,`t`.* FROM `romby_contentitem_tag_map` AS `m` INNER JOIN `romby_tags` AS `t` ON `m`.`tag_id` = `t`.`id` WHERE `m`.`type_alias` = :contentType AND `m`.`content_item_id` = :id AND `t`.`published` = 1 AND `t`.`access` IN (:preparedArray1,:preparedArray2)392μs19.97KBParams/libraries/src/Helper/TagsHelper.php:388Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `romby_categories` AS `s` INNER JOIN `romby_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`594μs3.94KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT DISTINCT a.id, a.title, a.name, a.checked_out, a.checked_out_time, a.note, a.state, a.access, a.created_time, a.created_user_id, a.ordering, a.language, a.fieldparams, a.params, a.type, a.default_value, a.context, a.group_id, a.label, a.description, a.required, a.only_use_in_subform,l.title AS language_title, l.image AS language_image,uc.name AS editor,ag.title AS access_level,ua.name AS author_name,g.title AS group_title, g.access as group_access, g.state AS group_state, g.note as group_note FROM romby_fields AS a LEFT JOIN `romby_languages` AS l ON l.lang_code = a.language LEFT JOIN romby_users AS uc ON uc.id=a.checked_out LEFT JOIN romby_viewlevels AS ag ON ag.id = a.access LEFT JOIN romby_users AS ua ON ua.id = a.created_user_id LEFT JOIN romby_fields_groups AS g ON g.id = a.group_id LEFT JOIN `romby_fields_categories` AS fc ON fc.field_id = a.id WHERE ( (`a`.`context` = :context AND (`fc`.`category_id` IS NULL OR `fc`.`category_id` IN (:preparedArray1,:preparedArray2,:preparedArray3,:preparedArray4)) AND `a`.`access` IN (:preparedArray5,:preparedArray6)) AND (`a`.`group_id` = 0 OR `g`.`access` IN (:preparedArray7,:preparedArray8)) AND `a`.`state` = :state) AND (`a`.`group_id` = 0 OR `g`.`state` = :gstate) AND `a`.`only_use_in_subform` = :only_use_in_subform ORDER BY a.ordering ASC655μs4.81KBParams/libraries/src/MVC/Model/BaseDatabaseModel.php:166Copy
  • SELECT `a`.`menutype`,`a`.`title` FROM `romby_menu_types` AS `a` WHERE `a`.`client_id` = 0244μs592B/libraries/gantry5/src/classes/Gantry/Framework/Menu.php:138Copy
  • SELECT m.id, m.alias, m.path AS route, m.level, m.parent_id FROM romby_menu AS m WHERE m.menutype = 'mainmenu' AND m.parent_id > 0 AND m.client_id = 0 AND m.published >= 0 ORDER BY m.lft1.76ms24.73KB/libraries/gantry5/src/classes/Gantry/Framework/Menu.php:791Copy
  • SELECT `m`.`id`,`m`.`title`,`m`.`module`,`m`.`position`,`m`.`content`,`m`.`showtitle`,`m`.`params`,`mm`.`menuid` FROM `romby_modules` AS `m` LEFT JOIN `romby_modules_menu` AS `mm` ON `mm`.`moduleid` = `m`.`id` LEFT JOIN `romby_extensions` AS `e` ON `e`.`element` = `m`.`module` AND `e`.`client_id` = `m`.`client_id` WHERE ( ( (`m`.`published` = 1 AND `e`.`enabled` = 1 AND `m`.`client_id` = :clientId AND `m`.`access` IN (:preparedArray1,:preparedArray2)) AND (`m`.`publish_up` IS NULL OR `m`.`publish_up` <= :publishUp)) AND (`m`.`publish_down` IS NULL OR `m`.`publish_down` >= :publishDown)) AND (`mm`.`menuid` = :itemId OR `mm`.`menuid` <= 0) ORDER BY `m`.`position`,`m`.`ordering`5.22ms1.89KBParams/libraries/src/Cache/Controller/CallbackController.php:51Copy
  • SELECT SUM(CASE WHEN `a`.`next_execution` <= :now THEN 1 ELSE 0 END) AS due_count,SUM(CASE WHEN `a`.`locked` IS NULL THEN 0 ELSE 1 END) AS locked_count FROM `romby_scheduler_tasks` AS `a` WHERE `a`.`state` = 1230μs1.37KBParams/administrator/components/com_scheduler/src/Model/TasksModel.php:517Copy
  • SELECT `session_id` FROM `romby_session` WHERE `session_id` = ?193μs1KBParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:291Copy
  • UPDATE `romby_session` SET `data` = ? , `time` = ? WHERE `session_id` = ?265μs592BParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:318Copy