Shoulder Mobility Test

This tool helps you assess your shoulder flexibility and range of motion. Perform each test for both shoulders. This is not a substitute for professional medical advice.

Test 1: Apley Scratch Test (Overhead Reach)

This tests external rotation and abduction.

  1. Sit or stand up straight.
  2. Reach one arm overhead and behind your back, as if trying to scratch your opposite shoulder blade.
  3. Reach as far as you can without pain.
  4. Select the option that best describes how far your fingers reached.

Test 2: Hand-to-Back Test (Internal Rotation)

This tests internal rotation and adduction.

  1. Place the back of one hand on your lower back.
  2. Slide your hand up your spine as far as possible.
  3. Note the highest point your fingertips can reach.
  4. Perform on both sides.

Left Arm: ${interpretations[results.apley_left].text}

Hand-to-Back Test (Internal)

Right Hand: ${interpretations[results.hand_back_right].text}

Left Hand: ${interpretations[results.hand_back_left].text}

`; }; pdfButton.addEventListener('click', async () => { const pdfExportContainer = document.createElement('div'); Object.assign(pdfExportContainer.style, { position: 'absolute', left: '-9999px', top: '0', width: '800px', padding: '2rem', backgroundColor: '#ffffff', fontFamily: 'Inter, sans-serif' }); const resultsHTML = document.querySelector('.results-card').innerHTML; pdfExportContainer.innerHTML = `
${resultsHTML}

This report is for informational purposes only and does not substitute for a professional medical evaluation.

`; document.body.appendChild(pdfExportContainer); try { const canvas = await html2canvas(pdfExportContainer, { scale: 2 }); const imgData = canvas.toDataURL('image/png'); const { jsPDF } = window.jspdf; const pdf = new jsPDF({ orientation: 'portrait', unit: 'mm', format: 'a4' }); const pdfWidth = pdf.internal.pageSize.getWidth(); const imgHeight = canvas.height * pdfWidth / canvas.width; pdf.addImage(imgData, 'PNG', 15, 15, pdfWidth - 30, imgHeight - 30); pdf.save('Shoulder-Mobility-Report.pdf'); } catch (error) { console.error("PDF Generation Failed:", error); alert("An error occurred while generating the PDF."); } finally { document.body.removeChild(pdfExportContainer); } }); });
Scroll to Top