Widget:520Jeopardy: Difference between revisions

From Doc-Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:
<noinclude>
<noinclude>
Nursing Pharmacology Jeopardy Game for NSG 520 - Pathophysiology and Pharmacology
Nursing Pharmacology Jeopardy Game for NSG 520


==Usage==
==Usage==
  <nowiki>{{#widget:520Jeapordy}}</nowiki>
  <nowiki>{{#widget:520Jeapordy}}</nowiki>
 
</noinclude><includeonly><div id="jepApp">Loading game...</div>
</noinclude><includeonly><div id="jep-container">
<script type="text/javascript">
<style>
//<![CDATA[
.jep-game * { margin: 0; padding: 0; box-sizing: border-box; }
(function(){
.jep-game { font-family: Arial, sans-serif; background: linear-gradient(135deg, rgb(30,58,95) 0%, rgb(12,25,41) 100%); padding: 20px; border-radius: 8px; }
var J={s1:0,s2:0,tm:1,done:{},cur:null,tmr:30,ti:null,el:null,mute:false,actx:null};
.jep-game .container { max-width: 1200px; margin: 0 auto; }
var C=[
.jep-game .title { text-align: center; color: rgb(251,191,36); font-size: 2rem; font-weight: bold; margin-bottom: 8px; }
{n:"Cardiovascular",q:[
.jep-game .subtitle { text-align: center; color: rgb(147,197,253); margin-bottom: 15px; font-size: 0.9rem; }
{p:200,s:"A 58-year-old patient with heart failure is prescribed digoxin. Before administering, the nurse checks the apical pulse and finds it to be 52 bpm.",q:"What should the nurse do?",a:"Hold the medication and notify the healthcare provider. Digoxin should be held if apical pulse is below 60 bpm due to risk of toxicity and bradycardia."},
.jep-game .scoreboard { display: flex; justify-content: center; gap: 30px; margin-bottom: 15px; }
{p:400,s:"A patient taking warfarin for atrial fibrillation has an INR of 4.8 with dark, tarry stools and dizziness.",q:"What is the priority nursing intervention?",a:"Hold warfarin, notify provider immediately, prepare for possible Vitamin K. Patient shows GI bleeding signs with supratherapeutic INR."},
.jep-game .team { background: rgb(30,64,175); padding: 10px 20px; border-radius: 8px; text-align: center; }
{p:600,s:"A post-MI patient shows wide QRS complex rhythm at 180 bpm with no detectable pulse.",q:"What is this rhythm and immediate action?",a:"Pulseless VT. Begin CPR immediately and prepare for defibrillation per ACLS protocol."},
.jep-game .team.active { box-shadow: 0 0 15px rgb(251,191,36); }
{p:800,s:"A CHF patient started on carvedilol reports increased SOB and 5 lb weight gain after two weeks.",q:"Why might this occur?",a:"Beta-blockers can initially worsen heart failure symptoms before long-term benefit. Assess fluid retention, monitor daily weights."},
.jep-game .team h3 { color: white; margin-bottom: 5px; font-size: 0.95rem; }
{p:1000,s:"A hypertensive patient on lisinopril develops persistent dry cough. Provider switches to losartan.",q:"Best explanation for this change?",a:"ACE inhibitors cause dry cough from bradykinin accumulation. ARBs work similarly without this effect."}
.jep-game .team .score { font-size: 1.4rem; font-weight: bold; }
]},
.jep-game .score-pos { color: rgb(74,222,128); }
{n:"Pain Mgmt",q:[
.jep-game .score-neg { color: rgb(248,113,113); }
{p:200,s:"Post-surgical patient rates pain 7/10, requests PRN morphine. Last dose 3 hours ago, ordered q4h.",q:"Appropriate nursing action?",a:"Offer non-pharmacological interventions, reassess in 1 hour. Cannot give morphine until 4-hour interval passes."},
.jep-game .turn-indicator { text-align: center; color: rgb(251,191,36); font-size: 1rem; margin-bottom: 12px; }
{p:400,s:"Elderly dementia patient grimacing, guarding abdomen, restless but cannot verbally report pain.",q:"What pain assessment tool to use?",a:"Behavioral pain scale like PAINAD or FLACC. Assess nonverbal cues."},
.jep-game .board { display: grid; grid-template-columns: repeat(6, 1fr); gap: 5px; margin-bottom: 15px; }
{p:600,s:"Chronic back pain patient on oxycodone 6 months now needs higher doses for same relief.",q:"What is this vs addiction?",a:"Tolerance - physiological adaptation. Differs from addiction which involves compulsive use despite harm."},
.jep-game .cat-header { background: rgb(30,64,175); color: white; padding: 10px 5px; text-align: center; font-weight: bold; font-size: 0.8rem; border-radius: 5px 5px 0 0; min-height: 50px; display: flex; align-items: center; justify-content: center; }
{p:800,s:"Patient on IV morphine PCA has RR of 8, difficult to arouse, pinpoint pupils.",q:"What is occurring and priority interventions?",a:"Opioid overdose. Stop PCA, stimulate patient, prepare naloxone, support airway."},
.jep-game .cell { background: rgb(37,99,235); color: rgb(251,191,36); padding: 15px 5px; text-align: center; font-size: 1.2rem; font-weight: bold; border-radius: 5px; cursor: pointer; border: none; width: 100%; }
{p:1000,s:"Cancer patient on MS Contin still has breakthrough pain episodes.",q:"What medication modification to anticipate?",a:"Add immediate-release morphine for breakthrough, typically 10-15 percent of 24-hour dose."}
.jep-game .cell:hover:not(.used) { background: rgb(59,130,246); }
]},
.jep-game .cell.used { background: rgb(30,58,95); color: rgb(30,58,95); cursor: default; }
{n:"Teaching",q:[
.jep-game .btn-reset { background: rgb(220,38,38); color: white; padding: 8px 16px; border-radius: 5px; font-weight: bold; cursor: pointer; border: none; display: block; margin: 0 auto; }
{p:200,s:"New diabetic needs insulin teaching but appears anxious and keeps checking phone.",q:"What should nurse do first?",a:"Assess readiness to learn. Address anxiety, minimize distractions, determine learning style."},
.jep-game .btn-reset:hover { background: rgb(185,28,28); }
{p:400,s:"Elderly patient on new warfarin has hearing loss and reads at 6th-grade level.",q:"Teaching strategies to employ?",a:"Face patient, simple language, large print materials at appropriate level, teach-back method."},
.jep-game .btn-mute { background: rgb(30,64,175); color: white; padding: 8px 12px; border-radius: 5px; border: none; cursor: pointer; font-size: 1.1rem; margin-left: 10px; }
{p:600,s:"Patient discharged on metformin asks about drinking alcohol on weekends.",q:"What education to provide?",a:"Alcohol increases lactic acidosis risk with metformin. Limit alcohol, never on empty stomach."},
.jep-game .tips { text-align: center; color: rgb(147,197,253); font-size: 0.75rem; margin-top: 10px; }
{p:800,s:"CHF patient discharge - nurse has 15 minutes to teach meds, diet, activity, warning signs.",q:"How to prioritize?",a:"Survival skills: daily weights, sodium restriction basics, med names and times, warning signs."},
.jep-game .question-view { background: rgb(30,64,175); border-radius: 8px; padding: 20px; color: white; }
{p:1000,s:"16-year-old with new epilepsy needs phenytoin teaching. Mother wants to handle all meds.",q:"Developmental considerations?",a:"Adolescents need autonomy. Include teen, address appearance concerns and driving restrictions."}
.jep-game .q-header { text-align: center; margin-bottom: 15px; }
]},
.jep-game .q-category { display: inline-block; background: rgb(251,191,36); color: rgb(30,58,95); padding: 5px 15px; border-radius: 15px; font-weight: bold; font-size: 0.9rem; }
{n:"GI/Hepatic",q:[
.jep-game .q-team { color: rgb(251,191,36); margin-top: 8px; }
{p:200,s:"Cirrhosis patient has ammonia 95 (normal 15-45), confused with asterixis.",q:"What medication and why?",a:"Lactulose - acidifies colon, converts ammonia to ammonium, promotes elimination."},
.jep-game .q-timer { text-align: center; margin-bottom: 12px; }
{p:400,s:"Post-cholecystectomy patient has severe right shoulder pain despite abdominal surgery.",q:"What causes this?",a:"Referred pain from CO2 irritating diaphragm. Encourage ambulation to absorb gas."},
.jep-game .timer-badge { display: inline-block; padding: 6px 16px; border-radius: 15px; font-size: 1.2rem; font-weight: bold; background: rgb(251,191,36); color: rgb(30,58,95); }
{p:600,s:"PUD patient prescribed omeprazole, clarithromycin, amoxicillin for 14 days.",q:"What is this treating?",a:"H. pylori triple therapy. Complete entire course, PPI before meals."},
.jep-game .timer-badge.warning { background: rgb(220,38,38); color: white; }
{p:800,s:"Acute pancreatitis patient with NG tube, IV fluids, NPO asks why they cannot eat.",q:"Best explanation?",a:"Pancreas needs rest. Eating stimulates enzyme secretion worsening inflammation."},
.jep-game .scenario-box { background: rgb(29,78,216); border-radius: 6px; padding: 12px; margin-bottom: 10px; }
{p:1000,s:"Crohns patient on long-term prednisone has moon face, central obesity, glucose 180.",q:"What is occurring?",a:"Cushing syndrome from steroids. Never stop abruptly, monitor glucose, report infections."}
.jep-game .scenario-box h4 { color: rgb(251,191,36); margin-bottom: 6px; font-size: 0.9rem; }
]},
.jep-game .scenario-box p { font-size: 0.95rem; line-height: 1.4; }
{n:"Med Admin",q:[
.jep-game .question-box { background: rgb(37,99,235); border-radius: 6px; padding: 12px; margin-bottom: 10px; }
{p:200,s:"Nurse preparing IV vancomycin - pharmacy says infuse over 30 minutes.",q:"What concern?",a:"Too fast causes Red Man Syndrome. Should infuse over at least 60 minutes."},
.jep-game .question-box h4 { color: rgb(251,191,36); margin-bottom: 6px; font-size: 0.9rem; }
{p:400,s:"MAR shows KCl 40 mEq IV. Nurse receives 40 mEq vial.",q:"What must nurse verify?",a:"Never IV push - fatal arrhythmias. Dilute properly, use pump, max 10-20 mEq per hour."},
.jep-game .question-box p { font-size: 1rem; font-weight: 600; }
{p:600,s:"Nurse to give insulin lispro and glargine before breakfast.",q:"How to administer?",a:"SEPARATE syringes - Lantus never mixed with other insulins."},
.jep-game .answer-box { background: rgb(22,101,52); border-radius: 6px; padding: 12px; margin-bottom: 10px; }
{p:800,s:"Patient on heparin drip has aPTT 120 (therapeutic 60-80), needs procedure.",q:"What should nurse do?",a:"Hold heparin, notify provider. Protamine sulfate for urgent reversal."},
.jep-game .answer-box h4 { color: rgb(251,191,36); margin-bottom: 6px; font-size: 0.9rem; }
{p:1000,s:"First IV penicillin dose - patient develops hives, wheezing, BP 80/50.",q:"What and priority interventions?",a:"Anaphylaxis. Stop infusion, call help, epinephrine IM, airway, IV fluids."}
.jep-game .answer-box p { font-size: 0.95rem; line-height: 1.4; }
]},
.jep-game .btn-group { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; margin-top: 15px; }
{n:"Pathophys",q:[
.jep-game .btn { padding: 10px 20px; border-radius: 5px; font-weight: bold; cursor: pointer; border: none; font-size: 0.9rem; }
{p:200,s:"Uncontrolled diabetic: glucose 450, rapid deep breathing, fruity breath.",q:"Condition and symptom causes?",a:"DKA. No insulin causes fat breakdown and ketones. Acidosis triggers Kussmaul respirations."},
.jep-game .btn-reveal { background: rgb(251,191,36); color: rgb(30,58,95); }
{p:400,s:"COPD patient on 2L O2 - family increases to 6L. Patient becomes drowsy.",q:"What is happening?",a:"CO2 narcosis. High O2 removes hypoxic drive causing hypoventilation."},
.jep-game .btn-reveal:hover { background: rgb(252,211,77); }
{p:600,s:"Post-thyroidectomy: mouth tingling, muscle cramps, positive Chvostek sign.",q:"Complication and why?",a:"Hypocalcemia from parathyroid damage. Treat with IV calcium gluconate."},
.jep-game .btn-correct { background: rgb(34,197,94); color: white; }
{p:800,s:"Trauma patient got 6 units PRBCs. Labs: pH 7.28, K+ 6.2, Ca 7.8, hypothermia.",q:"Massive transfusion complications?",a:"Acidosis, hyperkalemia, hypocalcemia, hypothermia."},
.jep-game .btn-correct:hover { background: rgb(22,163,74); }
{p:1000,s:"Sepsis: BP 78/40, HR 128, lactate 6, urine 10 mL/hr x2 hours.",q:"What occurring and priorities?",a:"Septic shock. Fluids 30 mL per kg, cultures, antibiotics within 1 hour, vasopressors."}
.jep-game .btn-wrong { background: rgb(239,68,68); color: white; }
]}
.jep-game .btn-wrong:hover { background: rgb(220,38,38); }
];
.jep-game .game-over { text-align: center; padding: 30px; }
function initAudio(){
.jep-game .game-over h1 { font-size: 2rem; color: rgb(251,191,36); margin-bottom: 15px; }
if(!J.actx){try{J.actx=new(window.AudioContext||window.webkitAudioContext)();}catch(e){}}
.jep-game .game-over .final { font-size: 1.2rem; color: white; margin-bottom: 10px; }
if(J.actx&&J.actx.state==="suspended"){J.actx.resume();}
.jep-game .game-over .winner { font-size: 1.5rem; color: rgb(251,191,36); font-weight: bold; margin-bottom: 20px; }
}
.jep-hidden { display: none !important; }
function tone(f,d,t,v){
</style>
if(J.mute||!J.actx)return;
 
try{
<div class="jep-game">
var o=J.actx.createOscillator();
<div id="jepBoardView" class="container">
var g=J.actx.createGain();
    <h1 class="title">🏥 Nursing Pharmacology Jeopardy</h1>
o.connect(g);
    <p class="subtitle">NSG 520 - Pathophysiology and Pharmacology</p>
g.connect(J.actx.destination);
    <div class="scoreboard">
o.frequency.value=f;
        <div class="team active" id="jepTeam1"><h3>Team 1</h3><div class="score score-pos" id="jepScore1">$0</div></div>
o.type=t||"sine";
        <div class="team" id="jepTeam2"><h3>Team 2</h3><div class="score score-pos" id="jepScore2">$0</div></div>
g.gain.value=v||0.3;
    </div>
g.gain.exponentialRampToValueAtTime(0.01,J.actx.currentTime+d);
    <p class="turn-indicator" id="jepTurn">🎯 Team 1's Turn to Pick</p>
o.start();
    <div class="board" id="jepBoard"></div>
o.stop(J.actx.currentTime+d);
    <div style="text-align:center;">
}catch(e){}
        <button class="btn-reset" onclick="JepGame.resetGame()">Reset Game</button>
}
        <button class="btn-mute" id="jepMuteBtn" onclick="JepGame.toggleMute()">🔊</button>
function sndSelect(){
    </div>
initAudio();
    <p class="tips">💡 Questions increase in difficulty with point value | 🎵 Sound effects included</p>
tone(523,0.1,"sine",0.2);
</div>
setTimeout(function(){tone(659,0.1,"sine",0.2);},50);
 
setTimeout(function(){tone(784,0.15,"sine",0.2);},100);
<div id="jepQuestionView" class="container jep-hidden">
}
    <div class="question-view">
function sndCorrect(){
        <div class="q-header">
initAudio();
            <span class="q-category" id="jepQCat">Category - $000</span>
var n=[523,659,784,1047];
            <p class="q-team" id="jepQTeam">Team 1's Turn</p>
for(var i=0;i<n.length;i++){
        </div>
(function(x){setTimeout(function(){tone(n[x],0.2,"sine",0.25);},x*100);})(i);
        <div class="q-timer"><span class="timer-badge" id="jepTimer">⏱️ 30s</span></div>
}
        <div class="scenario-box"><h4>📋 Scenario:</h4><p id="jepScenario"></p></div>
}
        <div class="question-box"><h4>❓ Question:</h4><p id="jepQuestion"></p></div>
function sndWrong(){
        <div id="jepAnswerBox" class="answer-box jep-hidden"><h4>✅ Answer:</h4><p id="jepAnswer"></p></div>
initAudio();
        <div class="btn-group" id="jepButtons">
tone(200,0.3,"sawtooth",0.15);
            <button class="btn btn-reveal" onclick="JepGame.showAnswer()">Reveal Answer</button>
setTimeout(function(){tone(150,0.4,"sawtooth",0.15);},150);
        </div>
}
    </div>
function sndReveal(){
</div>
initAudio();
 
tone(440,0.1,"triangle",0.2);
<div id="jepGameOverView" class="container jep-hidden">
setTimeout(function(){tone(554,0.1,"triangle",0.2);},100);
    <div class="question-view game-over">
setTimeout(function(){tone(659,0.2,"triangle",0.2);},200);
        <h1>🏆 Game Over!</h1>
}
        <div class="final" id="jepFinalScores"></div>
var css='<style>#jepApp .jG{font-family:Arial,sans-serif;background:linear-gradient(135deg,rgb(30,58,95),rgb(12,25,41));padding:15px;border-radius:8px;color:white}#jepApp .jG *{margin:0;padding:0;box-sizing:border-box}#jepApp .t{text-align:center;color:rgb(251,191,36);font-size:1.6rem;font-weight:bold;margin-bottom:5px}#jepApp .st{text-align:center;color:rgb(147,197,253);margin-bottom:10px;font-size:.8rem}#jepApp .sb{display:flex;justify-content:center;gap:20px;margin-bottom:8px}#jepApp .tm{background:rgb(30,64,175);padding:8px 15px;border-radius:6px;text-align:center}#jepApp .tm.on{box-shadow:0 0 10px rgb(251,191,36)}#jepApp .tm h3{color:white;font-size:.8rem;margin-bottom:2px}#jepApp .sc{font-size:1.1rem;font-weight:bold}#jepApp .ps{color:rgb(74,222,128)}#jepApp .ng{color:rgb(248,113,113)}#jepApp .tr{text-align:center;color:rgb(251,191,36);font-size:.85rem;margin-bottom:8px}#jepApp .bd{display:grid;grid-template-columns:repeat(6,1fr);gap:3px;margin-bottom:10px}#jepApp .ct{background:rgb(30,64,175);color:white;padding:6px 3px;text-align:center;font-weight:bold;font-size:.65rem;border-radius:3px 3px 0 0;min-height:35px;display:flex;align-items:center;justify-content:center}#jepApp .cl{background:rgb(37,99,235);color:rgb(251,191,36);padding:10px 3px;text-align:center;font-size:.9rem;font-weight:bold;border-radius:3px;cursor:pointer;border:none}#jepApp .cl:hover{background:rgb(59,130,246)}#jepApp .cl.dn{background:rgb(30,58,95);color:transparent;cursor:default}#jepApp .bt{text-align:center}#jepApp .rs{background:rgb(220,38,38);color:white;padding:5px 10px;border-radius:3px;font-weight:bold;cursor:pointer;border:none;font-size:.75rem;margin-right:5px}#jepApp .mt{background:rgb(30,64,175);color:white;padding:5px 10px;border-radius:3px;font-weight:bold;cursor:pointer;border:none;font-size:.9rem}#jepApp .qv{background:rgb(30,64,175);border-radius:6px;padding:12px;max-width:550px;margin:0 auto}#jepApp .qh{text-align:center;margin-bottom:8px}#jepApp .qc{display:inline-block;background:rgb(251,191,36);color:rgb(30,58,95);padding:3px 10px;border-radius:10px;font-weight:bold;font-size:.75rem}#jepApp .qt{color:rgb(251,191,36);margin-top:4px;font-size:.75rem}#jepApp .ti{text-align:center;margin-bottom:6px}#jepApp .tb{display:inline-block;padding:4px 10px;border-radius:10px;font-size:.9rem;font-weight:bold;background:rgb(251,191,36);color:rgb(30,58,95)}#jepApp .tb.w{background:rgb(220,38,38);color:white}#jepApp .sx{background:rgb(29,78,216);border-radius:4px;padding:8px;margin-bottom:6px}#jepApp .sx h4{color:rgb(251,191,36);font-size:.7rem;margin-bottom:3px}#jepApp .sx p{font-size:.8rem;line-height:1.3}#jepApp .qx{background:rgb(37,99,235);border-radius:4px;padding:8px;margin-bottom:6px}#jepApp .qx h4{color:rgb(251,191,36);font-size:.7rem;margin-bottom:3px}#jepApp .qx p{font-size:.85rem;font-weight:600}#jepApp .ax{background:rgb(22,101,52);border-radius:4px;padding:8px;margin-bottom:6px}#jepApp .ax h4{color:rgb(251,191,36);font-size:.7rem;margin-bottom:3px}#jepApp .ax p{font-size:.8rem;line-height:1.3}#jepApp .qb{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;margin-top:8px}#jepApp .bn{padding:6px 12px;border-radius:3px;font-weight:bold;cursor:pointer;border:none;font-size:.75rem}#jepApp .rv{background:rgb(251,191,36);color:rgb(30,58,95)}#jepApp .cr{background:rgb(34,197,94);color:white}#jepApp .wr{background:rgb(239,68,68);color:white}#jepApp .ov{text-align:center;padding:15px}#jepApp .ov h1{font-size:1.5rem;color:rgb(251,191,36);margin-bottom:8px}#jepApp .fn{font-size:.9rem;margin-bottom:3px}#jepApp .wn{font-size:1.1rem;color:rgb(251,191,36);font-weight:bold;margin-bottom:12px}</style>';
        <div class="winner" id="jepWinner"></div>
function board(){
        <button class="btn btn-reveal" onclick="JepGame.resetGame()">Play Again</button>
var h=css+'<div class="jG"><h1 class="t">Nursing Jeopardy</h1><p class="st">NSG 520 - Click any tile to start!</p>';
    </div>
h+='<div class="sb"><div class="tm'+(J.tm===1?' on':'')+'"><h3>Team 1</h3><div class="sc '+(J.s1>=0?'ps':'ng')+'">$'+J.s1+'</div></div>';
</div>
h+='<div class="tm'+(J.tm===2?' on':'')+'"><h3>Team 2</h3><div class="sc '+(J.s2>=0?'ps':'ng')+'">$'+J.s2+'</div></div></div>';
</div>
h+='<p class="tr">Team '+J.tm+' Pick</p><div class="bd">';
 
for(var i=0;i<6;i++)h+='<div class="ct">'+C[i].n+'</div>';
<script>
for(var r=0;r<5;r++)for(var c=0;c<6;c++){var k=c+'-'+r;h+=J.done[k]?'<button class="cl dn"></button>':'<button class="cl" onclick="jepPick('+c+','+r+')">$'+C[c].q[r].p+'</button>';}
var JepGame = (function() {
h+='</div><div class="bt"><button class="rs" onclick="jepReset()">Reset</button><button class="mt" onclick="jepMute()">'+(J.mute?'🔇':'🔊')+'</button></div></div>';
    var categories = [
J.el.innerHTML=h;
        {name:"Cardiovascular",questions:[
}
            {pts:200,scenario:"A 58-year-old patient with heart failure is prescribed digoxin. Before administering the medication, the nurse checks the apical pulse and finds it to be 52 bpm.",question:"What should the nurse do?",answer:"Hold the medication and notify the healthcare provider. Digoxin should be held if the apical pulse is below 60 bpm in adults due to risk of toxicity and bradycardia."},
function question(){
            {pts:400,scenario:"A patient taking warfarin for atrial fibrillation has an INR of 4.8. The patient reports dark, tarry stools and dizziness.",question:"What is the priority nursing intervention?",answer:"Hold warfarin, notify the provider immediately, and prepare for possible administration of Vitamin K. The patient shows signs of GI bleeding with supratherapeutic INR levels."},
var c=C[J.cur.c],q=c.q[J.cur.r];
            {pts:600,scenario:"A post-MI patient on a cardiac monitor suddenly shows a wide QRS complex rhythm at 180 bpm with no detectable pulse.",question:"What is this rhythm and what is the immediate action?",answer:"Ventricular tachycardia (pulseless VT). Begin CPR immediately and prepare for defibrillation. This is a shockable rhythm requiring immediate intervention per ACLS protocol."},
var h=css+'<div class="jG"><div class="qv"><div class="qh"><span class="qc">'+c.n+' - $'+q.p+'</span><p class="qt">Team '+J.tm+'</p></div>';
            {pts:800,scenario:"A patient with chronic heart failure is started on carvedilol. Two weeks later, the patient reports increased shortness of breath and weight gain of 5 lbs.",question:"Why might this occur and what should the nurse assess?",answer:"Beta-blockers can initially worsen heart failure symptoms before providing long-term benefit. Assess for fluid retention, monitor daily weights, lung sounds, and edema."},
h+='<div class="ti"><span class="tb'+(J.tmr<=10?' w':'')+'">'+J.tmr+'s</span></div>';
            {pts:1000,scenario:"A hypertensive patient on lisinopril develops a persistent dry cough. The provider switches to losartan.",question:"What is the nurse's best explanation for this change?",answer:"ACE inhibitors like lisinopril can cause dry cough due to bradykinin accumulation. ARBs like losartan work similarly but don't cause bradykinin buildup, so cough is not a side effect."}
h+='<div class="sx"><h4>Scenario:</h4><p>'+q.s+'</p></div>';
        ]},
h+='<div class="qx"><h4>Question:</h4><p>'+q.q+'</p></div>';
        {name:"Pain Mgmt",questions:[
h+='<div class="qb"><button class="bn rv" onclick="jepReveal()">Reveal Answer</button></div></div></div>';
            {pts:200,scenario:"A post-surgical patient rates their pain as 7/10 and requests PRN morphine. The last dose was given 3 hours ago, ordered every 4 hours.",question:"What is the appropriate nursing action?",answer:"Offer non-pharmacological interventions (repositioning, ice/heat, relaxation) and reassess in 1 hour. Cannot give morphine until 4-hour interval has passed."},
J.el.innerHTML=h;
            {pts:400,scenario:"An elderly patient with dementia is grimacing, guarding their abdomen, and has increased restlessness but cannot verbally report pain.",question:"What pain assessment tool should the nurse use?",answer:"Use a behavioral pain scale such as PAINAD (Pain Assessment in Advanced Dementia) or FLACC scale. Assess for nonverbal cues."},
}
            {pts:600,scenario:"A patient with chronic back pain has been on oxycodone for 6 months and now requires higher doses to achieve the same pain relief.",question:"What phenomenon is this, and how is it different from addiction?",answer:"This is tolerance - a physiological adaptation requiring higher doses. It differs from addiction, which involves compulsive use despite harm and loss of control."},
function answer(){
            {pts:800,scenario:"A patient receiving IV morphine via PCA pump has a respiratory rate of 8, is difficult to arouse, and has pinpoint pupils.",question:"What is occurring and what are the priority interventions?",answer:"Opioid overdose/toxicity. Stop PCA, stimulate patient, call for help, prepare naloxone (Narcan), support airway and breathing."},
var c=C[J.cur.c],q=c.q[J.cur.r];
            {pts:1000,scenario:"A patient with cancer pain is on around-the-clock MS Contin but still has breakthrough pain episodes.",question:"What medication regimen modification should the nurse anticipate?",answer:"Add immediate-release morphine for breakthrough pain, typically 10-15 percent of the total 24-hour dose."}
var h=css+'<div class="jG"><div class="qv"><div class="qh"><span class="qc">'+c.n+' - $'+q.p+'</span><p class="qt">Team '+J.tm+'</p></div>';
        ]},
h+='<div class="sx"><h4>Scenario:</h4><p>'+q.s+'</p></div>';
        {name:"Teaching",questions:[
h+='<div class="qx"><h4>Question:</h4><p>'+q.q+'</p></div>';
            {pts:200,scenario:"A newly diagnosed diabetic patient needs insulin teaching. The patient appears anxious and keeps checking their phone.",question:"What should the nurse do before beginning education?",answer:"Assess readiness to learn. Address anxiety first, minimize distractions, and determine the patient's learning style and priorities."},
h+='<div class="ax"><h4>Answer:</h4><p>'+q.a+'</p></div>';
            {pts:400,scenario:"An elderly patient with newly prescribed warfarin has mild hearing loss and reads at a 6th-grade level.",question:"What teaching strategies should the nurse employ?",answer:"Face the patient when speaking, use simple language, provide written materials at appropriate reading level with large print, use teach-back method."},
h+='<div class="qb"><button class="bn cr" onclick="jepAns(1)">Correct +$'+q.p+'</button><button class="bn wr" onclick="jepAns(0)">Wrong -$'+q.p+'</button></div></div></div>';
            {pts:600,scenario:"A patient is being discharged on metformin for type 2 diabetes. They ask if they can drink alcohol on weekends.",question:"What patient education should the nurse provide?",answer:"Alcohol increases risk of lactic acidosis with metformin and can cause hypoglycemia. Recommend limiting alcohol and never drinking on empty stomach."},
J.el.innerHTML=h;
            {pts:800,scenario:"A patient with CHF is being discharged. The nurse has 15 minutes to provide discharge teaching about medications, diet, activity, and warning signs.",question:"How should the nurse prioritize this teaching?",answer:"Focus on survival skills: daily weights (report 2+ lb gain), sodium restriction basics, medication names/times, and warning signs requiring immediate attention."},
}
            {pts:1000,scenario:"A 16-year-old with newly diagnosed epilepsy needs teaching about phenytoin. The mother wants to handle all medication administration.",question:"What developmental considerations should guide the nurse's approach?",answer:"Adolescents need autonomy. Include the teen in teaching, address concerns about appearance (gingival hyperplasia) and driving restrictions."}
function gameover(){
        ]},
var w=J.s1>J.s2?'Team 1 Wins!':J.s2>J.s1?'Team 2 Wins!':'Tie!';
        {name:"GI/Hepatic",questions:[
var h=css+'<div class="jG"><div class="qv ov"><h1>Game Over!</h1><p class="fn">Team 1: $'+J.s1+'</p><p class="fn">Team 2: $'+J.s2+'</p><p class="wn">'+w+'</p><button class="bn rv" onclick="jepReset()">Play Again</button></div></div>';
            {pts:200,scenario:"A patient with cirrhosis has a serum ammonia level of 95 mcg/dL (normal: 15-45). The patient is confused and has asterixis.",question:"What medication should the nurse anticipate and why?",answer:"Lactulose - it acidifies the colon, converting ammonia to ammonium which cannot be absorbed, and promotes bowel movements to eliminate ammonia."},
J.el.innerHTML=h;
            {pts:400,scenario:"A patient post-cholecystectomy complains of severe right shoulder pain despite the surgery being abdominal.",question:"What causes this and what should the nurse do?",answer:"Referred pain from CO2 used during laparoscopic surgery irritating the diaphragm. Encourage ambulation to absorb the gas."},
}
            {pts:600,scenario:"A patient with peptic ulcer disease is prescribed omeprazole, clarithromycin, and amoxicillin for 14 days.",question:"What is this regimen treating and what teaching is essential?",answer:"H. pylori eradication (triple therapy). Complete entire course even if feeling better, take PPI before meals, return for follow-up testing."},
window.jepPick=function(c,r){
            {pts:800,scenario:"A patient with acute pancreatitis has NG tube to suction, IV fluids, and NPO status. The patient asks why they can't eat.",question:"What is the nurse's best explanation?",answer:"The pancreas needs rest to heal. Eating stimulates pancreatic enzyme secretion, which can worsen inflammation and pain."},
if(J.done[c+'-'+r])return;
            {pts:1000,scenario:"A patient with Crohn's disease on long-term prednisone develops round face, central obesity, and blood glucose of 180 mg/dL.",question:"What is occurring and what patient education is needed?",answer:"Cushing syndrome from chronic corticosteroid use. Never stop medication abruptly, report signs of infection, monitor blood glucose."}
sndSelect();
        ]},
J.cur={c:c,r:r};
        {name:"Med Admin",questions:[
J.tmr=30;
            {pts:200,scenario:"A nurse is preparing to administer IV vancomycin. The pharmacy sends it to infuse over 30 minutes.",question:"What concern should the nurse have?",answer:"Vancomycin infused too rapidly causes Red Man Syndrome - flushing, hypotension, rash. Should infuse over at least 60 minutes."},
clearInterval(J.ti);
            {pts:400,scenario:"A patient's MAR shows potassium chloride 40 mEq IV ordered. The nurse receives the medication as a 40 mEq vial.",question:"What must the nurse verify before administration?",answer:"IV potassium must NEVER be given as bolus push - causes fatal arrhythmias. Verify diluted appropriately, infused via pump, max 10-20 mEq/hour."},
J.ti=setInterval(function(){J.tmr--;if(J.tmr<=0)clearInterval(J.ti);question();},1000);
            {pts:600,scenario:"A nurse is to administer insulin lispro (Humalog) and insulin glargine (Lantus) to a diabetic patient before breakfast.",question:"How should these insulins be administered?",answer:"Give in SEPARATE syringes - Lantus should never be mixed with other insulins as it can alter the action of both."},
question();
            {pts:800,scenario:"A patient on IV heparin drip has an aPTT of 120 seconds (therapeutic range 60-80). The patient now needs an invasive procedure.",question:"What should the nurse do?",answer:"Hold heparin infusion, notify provider. If urgent reversal needed, protamine sulfate is the antidote. Monitor for bleeding."},
};
            {pts:1000,scenario:"A patient receiving first dose of IV penicillin develops hives, wheezing, and BP drop to 80/50 after 5 minutes.",question:"What is occurring and list interventions in priority order?",answer:"Anaphylaxis. 1) Stop infusion, 2) Call for help, 3) Epinephrine IM, 4) Maintain airway, 5) IV fluids, 6) Diphenhydramine/corticosteroids."}
window.jepReveal=function(){
        ]},
clearInterval(J.ti);
        {name:"Pathophys",questions:[
sndReveal();
            {pts:200,scenario:"A patient with uncontrolled diabetes has blood glucose of 450 mg/dL, breathing rapidly and deeply, and fruity-smelling breath.",question:"What condition is this and what causes these symptoms?",answer:"Diabetic Ketoacidosis (DKA). Lack of insulin causes fat breakdown producing ketones. Metabolic acidosis triggers Kussmaul respirations."},
answer();
            {pts:400,scenario:"A patient with COPD on 2L nasal cannula has oxygen increased to 6L by family. The patient becomes increasingly drowsy.",question:"What is happening physiologically?",answer:"CO2 narcosis. COPD patients rely on hypoxic drive. High-flow oxygen removes this drive, causing hypoventilation and CO2 retention."},
};
            {pts:600,scenario:"A patient after thyroidectomy develops tingling around the mouth, muscle cramps, and positive Chvostek's sign.",question:"What complication is this and why does it occur?",answer:"Hypocalcemia due to damage to parathyroid glands during surgery. Treat with IV calcium gluconate."},
window.jepAns=function(ok){
            {pts:800,scenario:"A trauma patient receives 6 units of PRBCs. Labs show: pH 7.28, K+ 6.2 mEq/L, calcium 7.8 mg/dL, hypothermia.",question:"What complications of massive transfusion are occurring?",answer:"Metabolic acidosis, hyperkalemia (K+ leaks from stored RBCs), hypocalcemia (citrate binds calcium), and hypothermia."},
clearInterval(J.ti);
            {pts:1000,scenario:"A patient with severe sepsis has: BP 78/40, HR 128, lactate 6 mmol/L, urine output 10 mL/hr for 2 hours.",question:"What is occurring and what are the priority interventions?",answer:"Septic shock. Fluid resuscitation (30 mL/kg), obtain cultures, broad-spectrum antibiotics within 1 hour, vasopressors if needed."}
if(ok){sndCorrect();}else{sndWrong();}
        ]}
var q=C[J.cur.c].q[J.cur.r];
    ];
if(J.tm===1)J.s1+=ok?q.p:-q.p;else J.s2+=ok?q.p:-q.p;
 
J.done[J.cur.c+'-'+J.cur.r]=true;
    var state = {
J.tm=J.tm===1?2:1;
        scores: {team1: 0, team2: 0},
J.cur=null;
        currentTeam: 1,
Object.keys(J.done).length===30?gameover():board();
        answered: {},
};
        current: null,
window.jepReset=function(){
        timer: 30,
clearInterval(J.ti);
        timerInterval: null,
J.s1=0;J.s2=0;J.tm=1;J.done={};J.cur=null;J.tmr=30;
        muted: false,
board();
        audioCtx: null
};
    };
window.jepMute=function(){
 
J.mute=!J.mute;
    function initAudio() {
board();
        if (!state.audioCtx) {
};
            state.audioCtx = new (window.AudioContext || window.webkitAudioContext)();
function init(){J.el=document.getElementById("jepApp");if(J.el)board();}
        }
if(document.readyState==="loading"){document.addEventListener("DOMContentLoaded",init);}else{init();}
        if (state.audioCtx.state === 'suspended') {
            state.audioCtx.resume();
        }
    }
 
    function playTone(freq, dur, type, vol) {
        if (state.muted || !state.audioCtx) return;
        type = type || 'sine';
        vol = vol || 0.3;
        var osc = state.audioCtx.createOscillator();
        var gain = state.audioCtx.createGain();
        osc.connect(gain);
        gain.connect(state.audioCtx.destination);
        osc.frequency.value = freq;
        osc.type = type;
        gain.gain.value = vol;
        gain.gain.exponentialRampToValueAtTime(0.01, state.audioCtx.currentTime + dur);
        osc.start();
        osc.stop(state.audioCtx.currentTime + dur);
    }
 
    function playSelect() {
        initAudio();
        playTone(523.25, 0.1, 'sine', 0.2);
        setTimeout(function() { playTone(659.25, 0.1, 'sine', 0.2); }, 50);
        setTimeout(function() { playTone(783.99, 0.15, 'sine', 0.2); }, 100);
    }
 
    function playCorrect() {
        initAudio();
        var notes = [523.25, 659.25, 783.99, 1046.50];
        for (var i = 0; i < notes.length; i++) {
            (function(idx) {
                setTimeout(function() { playTone(notes[idx], 0.2, 'sine', 0.25); }, idx * 100);
            })(i);
        }
    }
 
    function playWrong() {
        initAudio();
        playTone(200, 0.3, 'sawtooth', 0.15);
        setTimeout(function() { playTone(150, 0.4, 'sawtooth', 0.15); }, 150);
    }
 
    function playReveal() {
        initAudio();
        playTone(440, 0.1, 'triangle', 0.2);
        setTimeout(function() { playTone(554.37, 0.1, 'triangle', 0.2); }, 100);
        setTimeout(function() { playTone(659.25, 0.2, 'triangle', 0.2); }, 200);
    }
 
    function showView(viewId) {
        document.getElementById('jepBoardView').className = 'container jep-hidden';
        document.getElementById('jepQuestionView').className = 'container jep-hidden';
        document.getElementById('jepGameOverView').className = 'container jep-hidden';
        document.getElementById(viewId).className = 'container';
    }
 
    function buildBoard() {
        var board = document.getElementById('jepBoard');
        board.innerHTML = '';
        for (var c = 0; c < categories.length; c++) {
            var header = document.createElement('div');
            header.className = 'cat-header';
            header.textContent = categories[c].name;
            board.appendChild(header);
        }
        for (var q = 0; q < 5; q++) {
            for (var c = 0; c < categories.length; c++) {
                var cell = document.createElement('button');
                var key = c + '-' + q;
                cell.className = 'cell' + (state.answered[key] ? ' used' : '');
                cell.textContent = state.answered[key] ? '' : '$' + categories[c].questions[q].pts;
                cell.setAttribute('data-cat', c);
                cell.setAttribute('data-q', q);
                if (!state.answered[key]) {
                    cell.onclick = function() {
                        var catIdx = parseInt(this.getAttribute('data-cat'));
                        var qIdx = parseInt(this.getAttribute('data-q'));
                        selectQuestion(catIdx, qIdx);
                    };
                }
                board.appendChild(cell);
            }
        }
    }
 
    function updateScores() {
        var s1 = document.getElementById('jepScore1');
        var s2 = document.getElementById('jepScore2');
        var t1 = document.getElementById('jepTeam1');
        var t2 = document.getElementById('jepTeam2');
        var turn = document.getElementById('jepTurn');
 
        s1.textContent = '$' + state.scores.team1;
        s1.className = 'score ' + (state.scores.team1 >= 0 ? 'score-pos' : 'score-neg');
        s2.textContent = '$' + state.scores.team2;
        s2.className = 'score ' + (state.scores.team2 >= 0 ? 'score-pos' : 'score-neg');
        t1.className = 'team' + (state.currentTeam === 1 ? ' active' : '');
        t2.className = 'team' + (state.currentTeam === 2 ? ' active' : '');
        turn.textContent = '🎯 Team ' + state.currentTeam + "'s Turn to Pick";
    }
 
    function startTimer() {
        state.timer = 30;
        updateTimer();
        state.timerInterval = setInterval(function() {
            state.timer--;
            updateTimer();
            if (state.timer <= 0) {
                clearInterval(state.timerInterval);
            }
        }, 1000);
    }
 
    function stopTimer() {
        if (state.timerInterval) {
            clearInterval(state.timerInterval);
            state.timerInterval = null;
        }
    }
 
    function updateTimer() {
        var badge = document.getElementById('jepTimer');
        badge.textContent = '⏱️ ' + state.timer + 's';
        badge.className = 'timer-badge' + (state.timer <= 10 ? ' warning' : '');
    }
 
    function selectQuestion(catIdx, qIdx) {
        var key = catIdx + '-' + qIdx;
        if (state.answered[key]) return;
 
        playSelect();
        state.current = {cat: catIdx, q: qIdx};
 
        var cat = categories[catIdx];
        var question = cat.questions[qIdx];
 
        document.getElementById('jepQCat').textContent = cat.name + ' - $' + question.pts;
        document.getElementById('jepQTeam').textContent = "Team " + state.currentTeam + "'s Turn";
        document.getElementById('jepScenario').textContent = question.scenario;
        document.getElementById('jepQuestion').textContent = question.question;
        document.getElementById('jepAnswer').textContent = question.answer;
        document.getElementById('jepAnswerBox').className = 'answer-box jep-hidden';
        document.getElementById('jepButtons').innerHTML = '<button class="btn btn-reveal" onclick="JepGame.showAnswer()">Reveal Answer</button>';
 
        showView('jepQuestionView');
        startTimer();
    }
 
    function showAnswer() {
        stopTimer();
        playReveal();
        document.getElementById('jepAnswerBox').className = 'answer-box';
        var question = categories[state.current.cat].questions[state.current.q];
        document.getElementById('jepButtons').innerHTML =
            '<button class="btn btn-correct" onclick="JepGame.answer(true)">✓ Correct (+$' + question.pts + ')</button>' +
            '<button class="btn btn-wrong" onclick="JepGame.answer(false)">✗ Incorrect (-$' + question.pts + ')</button>';
    }
 
    function answer(correct) {
        stopTimer();
        if (correct) {
            playCorrect();
        } else {
            playWrong();
        }
 
        var question = categories[state.current.cat].questions[state.current.q];
        var pts = question.pts;
        var key = state.current.cat + '-' + state.current.q;
 
        if (state.currentTeam === 1) {
            state.scores.team1 += correct ? pts : -pts;
        } else {
            state.scores.team2 += correct ? pts : -pts;
        }
 
        state.answered[key] = true;
        state.currentTeam = state.currentTeam === 1 ? 2 : 1;
        state.current = null;
 
        buildBoard();
        updateScores();
 
        if (Object.keys(state.answered).length === categories.length * 5) {
            setTimeout(showGameOver, 300);
        } else {
            showView('jepBoardView');
        }
    }
 
    function showGameOver() {
        var winner;
        if (state.scores.team1 > state.scores.team2) {
            winner = "Team 1 Wins!";
        } else if (state.scores.team2 > state.scores.team1) {
            winner = "Team 2 Wins!";
        } else {
            winner = "It's a Tie!";
        }
        document.getElementById('jepFinalScores').innerHTML = 'Team 1: $' + state.scores.team1 + '<br>Team 2: $' + state.scores.team2;
        document.getElementById('jepWinner').textContent = winner;
        showView('jepGameOverView');
    }
 
    function resetGame() {
        stopTimer();
        state.scores = {team1: 0, team2: 0};
        state.currentTeam = 1;
        state.answered = {};
        state.current = null;
        state.timer = 30;
        buildBoard();
        updateScores();
        showView('jepBoardView');
    }
 
    function toggleMute() {
        state.muted = !state.muted;
        document.getElementById('jepMuteBtn').textContent = state.muted ? '🔇' : '🔊';
    }
 
    function init() {
        buildBoard();
        updateScores();
        showView('jepBoardView');
    }
 
    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', init);
    } else {
        init();
    }
 
    return {
        showAnswer: showAnswer,
        answer: answer,
        resetGame: resetGame,
        toggleMute: toggleMute
    };
})();
})();
</script>
//]]>
</div></includeonly>
</script></includeonly>

Latest revision as of 01:29, 11 January 2026

Nursing Pharmacology Jeopardy Game for NSG 520

Usage

{{#widget:520Jeapordy}}