Widget:520Jeopardy: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
| (One intermediate revision by the same user not shown) | |||
| Line 4: | Line 4: | ||
==Usage== | ==Usage== | ||
<nowiki>{{#widget:520Jeapordy}}</nowiki> | <nowiki>{{#widget:520Jeapordy}}</nowiki> | ||
</noinclude><includeonly><div id="jepApp"></div> | </noinclude><includeonly><div id="jepApp">Loading game...</div> | ||
<script> | <script type="text/javascript"> | ||
//<![CDATA[ | |||
(function(){ | (function(){ | ||
var J={s1:0,s2:0,tm:1,done:{},cur:null,tmr:30,ti:null,el: | var J={s1:0,s2:0,tm:1,done:{},cur:null,tmr:30,ti:null,el:null,mute:false,actx:null}; | ||
var C=[ | var C=[ | ||
{n:"Cardiovascular",q:[ | {n:"Cardiovascular",q:[ | ||
| Line 21: | Line 22: | ||
{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."}, | {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."}, | ||
{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."}, | {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."}, | ||
{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 | {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."} | ||
]}, | ]}, | ||
{n:"Teaching",q:[ | {n:"Teaching",q:[ | ||
| Line 27: | Line 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."}, | {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."}, | ||
{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."}, | {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."}, | ||
{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 | {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."}, | ||
{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."} | {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."} | ||
]}, | ]}, | ||
| Line 39: | Line 40: | ||
{n:"Med Admin",q:[ | {n:"Med Admin",q:[ | ||
{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."}, | {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."}, | ||
{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 | {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."}, | ||
{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."}, | {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."}, | ||
{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."}, | {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."}, | ||
| Line 45: | Line 46: | ||
]}, | ]}, | ||
{n:"Pathophys",q:[ | {n:"Pathophys",q:[ | ||
{p:200,s:"Uncontrolled diabetic: glucose 450, rapid deep breathing, fruity breath.",q:"Condition and symptom causes?",a:"DKA. No insulin causes fat breakdown | {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."}, | ||
{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."}, | {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."}, | ||
{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."}, | {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."}, | ||
{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."}, | {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."}, | ||
{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 | {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."} | ||
]} | ]} | ||
]; | ]; | ||
function | function initAudio(){ | ||
if(!J.actx){try{J.actx=new(window.AudioContext||window.webkitAudioContext)();}catch(e){}} | |||
if(J.actx&&J.actx.state==="suspended"){J.actx.resume();} | |||
} | |||
function tone(f,d,t,v){ | |||
if(J.mute||!J.actx)return; | |||
try{ | |||
var o=J.actx.createOscillator(); | |||
var g=J.actx.createGain(); | |||
o.connect(g); | |||
g.connect(J.actx.destination); | |||
o.frequency.value=f; | |||
o.type=t||"sine"; | |||
g.gain.value=v||0.3; | |||
g.gain.exponentialRampToValueAtTime(0.01,J.actx.currentTime+d); | |||
o.start(); | |||
o.stop(J.actx.currentTime+d); | |||
}catch(e){} | |||
} | |||
function sndSelect(){ | |||
initAudio(); | |||
tone(523,0.1,"sine",0.2); | |||
setTimeout(function(){tone(659,0.1,"sine",0.2);},50); | |||
setTimeout(function(){tone(784,0.15,"sine",0.2);},100); | |||
} | |||
function sndCorrect(){ | |||
initAudio(); | |||
var n=[523,659,784,1047]; | |||
for(var i=0;i<n.length;i++){ | |||
(function(x){setTimeout(function(){tone(n[x],0.2,"sine",0.25);},x*100);})(i); | |||
} | |||
} | |||
function sndWrong(){ | |||
initAudio(); | |||
tone(200,0.3,"sawtooth",0.15); | |||
setTimeout(function(){tone(150,0.4,"sawtooth",0.15);},150); | |||
} | |||
function sndReveal(){ | |||
initAudio(); | |||
tone(440,0.1,"triangle",0.2); | |||
setTimeout(function(){tone(554,0.1,"triangle",0.2);},100); | |||
setTimeout(function(){tone(659,0.2,"triangle",0.2);},200); | |||
} | |||
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>'; | |||
function board(){ | function board(){ | ||
var h=css | var h=css+'<div class="jG"><h1 class="t">Nursing Jeopardy</h1><p class="st">NSG 520 - Click any tile to start!</p>'; | ||
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>'; | 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>'; | ||
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>'; | 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>'; | ||
| Line 60: | Line 104: | ||
for(var i=0;i<6;i++)h+='<div class="ct">'+C[i].n+'</div>'; | for(var i=0;i<6;i++)h+='<div class="ct">'+C[i].n+'</div>'; | ||
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>';} | 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>';} | ||
h+='</div><div class="bt"><button class="rs" onclick="jepReset()">Reset</button></div></div>'; | h+='</div><div class="bt"><button class="rs" onclick="jepReset()">Reset</button><button class="mt" onclick="jepMute()">'+(J.mute?'🔇':'🔊')+'</button></div></div>'; | ||
J.el.innerHTML=h; | J.el.innerHTML=h; | ||
} | } | ||
function question(){ | function question(){ | ||
var c=C[J.cur.c],q=c.q[J.cur.r]; | var c=C[J.cur.c],q=c.q[J.cur.r]; | ||
var h=css | 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="ti"><span class="tb'+(J.tmr<=10?' w':'')+'">'+J.tmr+'s</span></div>'; | h+='<div class="ti"><span class="tb'+(J.tmr<=10?' w':'')+'">'+J.tmr+'s</span></div>'; | ||
h+='<div class="sx"><h4>Scenario:</h4><p>'+q.s+'</p></div>'; | h+='<div class="sx"><h4>Scenario:</h4><p>'+q.s+'</p></div>'; | ||
| Line 74: | Line 118: | ||
function answer(){ | function answer(){ | ||
var c=C[J.cur.c],q=c.q[J.cur.r]; | var c=C[J.cur.c],q=c.q[J.cur.r]; | ||
var h=css | 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>'; | h+='<div class="sx"><h4>Scenario:</h4><p>'+q.s+'</p></div>'; | ||
h+='<div class="qx"><h4>Question:</h4><p>'+q.q+'</p></div>'; | h+='<div class="qx"><h4>Question:</h4><p>'+q.q+'</p></div>'; | ||
| Line 83: | Line 127: | ||
function gameover(){ | function gameover(){ | ||
var w=J.s1>J.s2?'Team 1 Wins!':J.s2>J.s1?'Team 2 Wins!':'Tie!'; | var w=J.s1>J.s2?'Team 1 Wins!':J.s2>J.s1?'Team 2 Wins!':'Tie!'; | ||
var h=css | 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>'; | ||
J.el.innerHTML=h; | J.el.innerHTML=h; | ||
} | } | ||
window.jepPick=function(c,r){if(J.done[c+'-'+r])return;J.cur={c:c,r:r};J.tmr=30;clearInterval(J.ti);J.ti=setInterval(function(){J.tmr--;if(J.tmr<=0)clearInterval(J.ti);question();},1000);question();}; | window.jepPick=function(c,r){ | ||
window.jepReveal=function(){clearInterval(J.ti);answer();}; | if(J.done[c+'-'+r])return; | ||
window.jepAns=function(ok){clearInterval(J.ti);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;J.tm=J.tm===1?2:1;J.cur=null;Object.keys(J.done).length===30?gameover():board();}; | sndSelect(); | ||
window.jepReset=function(){clearInterval(J.ti);J.s1=0;J.s2=0;J.tm=1;J.done={};J.cur=null;J.tmr=30;board();}; | J.cur={c:c,r:r}; | ||
J.tmr=30; | |||
clearInterval(J.ti); | |||
J.ti=setInterval(function(){J.tmr--;if(J.tmr<=0)clearInterval(J.ti);question();},1000); | |||
question(); | |||
}; | |||
window.jepReveal=function(){ | |||
clearInterval(J.ti); | |||
sndReveal(); | |||
answer(); | |||
}; | |||
window.jepAns=function(ok){ | |||
clearInterval(J.ti); | |||
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; | |||
J.tm=J.tm===1?2:1; | |||
J.cur=null; | |||
Object.keys(J.done).length===30?gameover():board(); | |||
}; | |||
window.jepReset=function(){ | |||
clearInterval(J.ti); | |||
J.s1=0;J.s2=0;J.tm=1;J.done={};J.cur=null;J.tmr=30; | |||
board(); | |||
}; | |||
window.jepMute=function(){ | |||
J.mute=!J.mute; | |||
board(); | board(); | ||
}; | |||
function init(){J.el=document.getElementById("jepApp");if(J.el)board();} | |||
if(document.readyState==="loading"){document.addEventListener("DOMContentLoaded",init);}else{init();} | |||
})(); | })(); | ||
//]]> | |||
</script></includeonly> | </script></includeonly> | ||
Latest revision as of 01:29, 11 January 2026
Nursing Pharmacology Jeopardy Game for NSG 520
Usage
{{#widget:520Jeapordy}}