diff --git a/content/.obsidian/workspace.json b/content/.obsidian/workspace.json index 2b7f89e..3a84831 100644 --- a/content/.obsidian/workspace.json +++ b/content/.obsidian/workspace.json @@ -23,6 +23,26 @@ } } ] + }, + { + "id": "a3f459e33e387813", + "type": "tabs", + "children": [ + { + "id": "088f03735e333992", + "type": "leaf", + "pinned": true, + "state": { + "type": "pdf", + "state": { + "file": "Anatomi & Histologi 2/Gamla tentor/2023-01-11/!2023-01-11-0044-PRX.pdf" + }, + "pinned": true, + "icon": "lucide-file-text", + "title": "!2023-01-11-0044-PRX" + } + } + ] } ], "direction": "vertical" @@ -174,7 +194,8 @@ } ], "direction": "horizontal", - "width": 212.5 + "width": 212.5, + "collapsed": true }, "left-ribbon": { "hiddenItems": { @@ -192,37 +213,39 @@ }, "active": "baa45c5e57825965", "lastOpenFiles": [ - "Anatomi & Histologi 2/Schema.md", + "Anatomi & Histologi 2/Gamla tentor/2023-01-11/1.md", + "Anatomi & Histologi 2/Gamla tentor/2023-05-31/1.md", "Anatomi & Histologi 2/Statistik.md", - "Anatomi & Histologi 2/Gamla tentor/2024-01-10/1.md", - "Anatomi & Histologi 2/Gamla tentor/2025-08-08/31.md", - "Anatomi & Histologi 2/Gamla tentor/2025-08-08/30.md", - "Anatomi & Histologi 2/Gamla tentor/2025-08-08/29.md", - "Anatomi & Histologi 2/Gamla tentor/2025-08-08/28.md", - "Anatomi & Histologi 2/Gamla tentor/2025-08-08/27.md", - "Anatomi & Histologi 2/Gamla tentor/2025-08-08/26.md", - "Anatomi & Histologi 2/Gamla tentor/2025-08-08/25.md", - "Anatomi & Histologi 2/Gamla tentor/2025-08-08/24.md", - "Anatomi & Histologi 2/Gamla tentor/2025-08-08/23.md", - "Anatomi & Histologi 2/Gamla tentor/2025-08-08/22.md", - "Anatomi & Histologi 2/Gamla tentor/2025-08-08/21.md", - "Anatomi & Histologi 2/Gamla tentor/2025-08-08/20.md", - "Anatomi & Histologi 2/Gamla tentor/2025-08-08/19.md", - "Anatomi & Histologi 2/Gamla tentor/2025-08-08/18.md", - "Anatomi & Histologi 2/Gamla tentor/2025-08-08/17.md", - "Anatomi & Histologi 2/Gamla tentor/2025-08-08/16.md", - "Anatomi & Histologi 2/Gamla tentor/2025-08-08/15.md", - "Anatomi & Histologi 2/Gamla tentor/2025-08-08/14.md", - "Anatomi & Histologi 2/Gamla tentor/2025-08-08/13.md", - "Anatomi & Histologi 2/Gamla tentor/2025-08-08/12.md", - "Anatomi & Histologi 2/Gamla tentor/2025-08-08/11.md", - "Anatomi & Histologi 2/Gamla tentor/2025-08-08/10.md", - "Anatomi & Histologi 2/Gamla tentor/2025-08-08/9.md", + "Anatomi & Histologi 2/Gamla tentor/2023-01-11/29.md", + "Anatomi & Histologi 2/Gamla tentor/2023-01-11/30.md", + "Anatomi & Histologi 2/Gamla tentor/2023-01-11/28.md", + "Anatomi & Histologi 2/Gamla tentor/2023-01-11/27.md", + "Anatomi & Histologi 2/Gamla tentor/2023-01-11/26.md", + "Anatomi & Histologi 2/Gamla tentor/2023-01-11/!2023-01-11-0044-PRX.pdf", + "Anatomi & Histologi 2/Gamla tentor/2023-01-11/25.md", + "Anatomi & Histologi 2/Gamla tentor/2023-01-11/24.md", + "Anatomi & Histologi 2/Gamla tentor/2023-01-11/23.md", + "Anatomi & Histologi 2/Gamla tentor/2023-01-11/22.md", + "Anatomi & Histologi 2/Gamla tentor/2023-01-11/21.md", + "Anatomi & Histologi 2/Gamla tentor/2023-01-11/20.md", + "Anatomi & Histologi 2/Gamla tentor/2023-01-11/19.md", + "Anatomi & Histologi 2/Gamla tentor/2023-01-11/18.md", + "Anatomi & Histologi 2/Gamla tentor/2023-01-11/17.md", + "Anatomi & Histologi 2/Gamla tentor/2023-01-11/16.md", + "Anatomi & Histologi 2/Gamla tentor/2023-01-11/15.md", + "Anatomi & Histologi 2/Gamla tentor/2023-01-11/14.md", + "Anatomi & Histologi 2/Gamla tentor/2023-01-11/13.md", + "Anatomi & Histologi 2/Gamla tentor/2023-01-11/12.md", + "Anatomi & Histologi 2/Gamla tentor/2023-01-11/11.md", + "Anatomi & Histologi 2/Gamla tentor/2023-01-11/10.md", + "Anatomi & Histologi 2/Gamla tentor/2023-01-11/9.md", + "Anatomi & Histologi 2/Gamla tentor/2023-01-11/8.md", + "Anatomi & Histologi 2/Gamla tentor/2022-06-01/!2022-06-01-0101-MGY.pdf", + "Anatomi & Histologi 2/Gamla tentor/2022-01-15/!2022-01-15-0032-BWD.pdf", "attachments/image-121.png", "Anatomi & Histologi 2/Gamla tentor/2024-01-10/!2024-01-10-0009-RYY.pdf", "z-Tech/tag_exam_questions_v2.sh", "z-Tech/tag_exam_questions.sh", - "Anatomi & Histologi 2/Gamla tentor/2022-01-15/!2022-01-15-0032-BWD.pdf", "Anatomi & Histologi 2/Gamla tentor/2025-08-08/!2025-08-08-0030-SHJ.pdf", "attachments/image-120.png", "attachments/image-119.png", @@ -236,8 +259,6 @@ "Anatomi & Histologi 2/Gamla tentor/2025-06-03/!2025-06-03-0003-UJR.pdf", "Anatomi & Histologi 2/Gamla tentor/2025-02-08/!2025-02-08-0003-ESW.pdf", "Anatomi & Histologi 2/Gamla tentor/2025-01-15/!2025-01-15-0021-HRY.pdf", - "Anatomi & Histologi 2/Gamla tentor/2024-05-29/!2024-05-29-0125-GZX.pdf", - "Anatomi & Histologi 2/Gamla tentor/tentor-utan-svar.pdf", "Untitled.canvas", "Biokemi/Metabolism/👋 Introduktion till metabolismen/Untitled.canvas", "Biokemi/Metabolism/📋 Metabolismen översikt.canvas", diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/10.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/10.md index e359ad6..77fa9c4 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/10.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/10.md @@ -11,5 +11,5 @@ Vad Ă€r korrekta om destination av nervcellers axon? - D: Axon frĂ„n stora nervceller i ryggmĂ€rgens framhorn terminerar pĂ„ skelettmuskulatur ```spoiler-block: -TODO +A och D ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/11.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/11.md index 8aaa8b3..3c07c53 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/11.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/11.md @@ -11,5 +11,5 @@ Vilka pĂ„stĂ„enden Ă€r korrekta för axoner vars nervcellskroppar ligger i ryggm - D: Dess axon gĂ„r ut i sympatiska grĂ€nsstrĂ€ngen ```spoiler-block: -TODO +B och D ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/12.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/12.md index b1c9d84..c2ee230 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/12.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/12.md @@ -11,5 +11,5 @@ Vilka av följande pĂ„stĂ„enden Ă€r korrekta? - D: Det finns fler dermatom Ă€n det finns ryggmĂ€rgssegment ```spoiler-block: -TODO +B och C ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/13.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/13.md index 3ca5f22..a4dd139 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/13.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/13.md @@ -11,5 +11,5 @@ Vilka av följande pĂ„stĂ„enden Ă€r korrekta? - D: Dura mater Ă€r den yttersta hinnan och den delas in i tvĂ„ olika blad ```spoiler-block: -TODO +A och D ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/14.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/14.md index 6e4188f..7bca4e6 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/14.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/14.md @@ -11,5 +11,5 @@ Vilka av följande pĂ„stĂ„enden Ă€r korrekta? - D: Liquor cerebrospinalis produceras av plexus choroideus, en vĂ€vnad bestĂ„ende av sĂ„vĂ€l pia mater och ependymceller. ```spoiler-block: -TODO +C och D ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/15.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/15.md index 11948ec..d135ca5 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/15.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/15.md @@ -2,7 +2,7 @@ tags: - ah2 - provfrĂ„ga - - frĂ„getyp/mcq + - frĂ„getyp/scq - histologi - preparat - bild @@ -18,5 +18,5 @@ Du tittar pĂ„ en silverinfĂ€rgning av hjĂ€rnstammen. Vilken celltyp Ă€r inringad - D: astrocyt ```spoiler-block: -TODO +B ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/16.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/16.md index dc097bc..f491805 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/16.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/16.md @@ -14,5 +14,5 @@ Vilka alternativ Ă€r korrekta för sensorisk och motorisk cortex ? - D: I sensorisk cortex dominerar lager 2 och 4 ```spoiler-block: -TODO +C och D ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/17.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/17.md index a70e9eb..024b992 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/17.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/17.md @@ -15,5 +15,5 @@ Vilka av följande pĂ„stĂ„enden Ă€r korrekta? - D: Schwannceller myeliniserar dendriter i PNS medan oligodendrocyter myeliniserar dendriter i CNS ```spoiler-block: -TODO +A och B ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/18.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/18.md index 857304b..dcb7ab4 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/18.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/18.md @@ -15,5 +15,5 @@ Vilka av följande pĂ„stĂ„enden Ă€r korrekta avseende _cortex cerebelli_? - D: StjĂ€rnceller, korgceller och purkinjeceller Ă€r olika celltyper man Ă„terfinner i cortex cerebelli och alla dessa tre Ă€r nervceller ```spoiler-block: -TODO +A och D ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/19.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/19.md index 336349b..fb9ae6a 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/19.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/19.md @@ -11,5 +11,5 @@ Vilka av följande pĂ„stĂ„enden Ă€r korrekta gĂ€llande ögat? - D: I fovea centralis Ă„terfinns stavar och tappar ```spoiler-block: -TODO +B och C ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/2.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/2.md index d9544de..5f5a54c 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/2.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/2.md @@ -11,5 +11,5 @@ Vilka av följande pĂ„stĂ„enden om cerebrum Ă€r mest korrekta? - D: Du Ă€ter lunch och kĂ€nner att hur gott maten luktar, dĂ„ Ă€r Insula starkt aktiverad ```spoiler-block: -TODO +A och B ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/20.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/20.md index 4c23a3b..34c0c13 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/20.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/20.md @@ -17,5 +17,6 @@ a) Vilken siffra pekar pĂ„ gula flĂ€cken? b) Vilken siffra pekar pĂ„ choroidea? ```spoiler-block: -TODO +a) 7 +b) 6 ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/21.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/21.md index 6988b1e..a8dc016 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/21.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/21.md @@ -11,5 +11,5 @@ Vilka av följande pĂ„stĂ„enden Ă€r korrekta? - D: Processus ciliare Ă„terfinns pĂ„ ciliarkroppen och dĂ€r produceras kammarvĂ€tska ```spoiler-block: -TODO +A och D ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/22.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/22.md index f215e67..705445b 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/22.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/22.md @@ -11,5 +11,5 @@ Vilka av följande Ă€r viktiga för hornhinnans (corneas) genomskinlighet? - D: Ett yttre flerskiktat förhornat epitel ```spoiler-block: -TODO +B och C ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/23.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/23.md index 5be302b..749d1c7 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/23.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/23.md @@ -16,5 +16,5 @@ Vilka pĂ„stĂ„enden stĂ€mmer pĂ„ Ciliarutskotten? - D: Ă€r beklĂ€dda med tvĂ„ lager epitelceller ```spoiler-block: -TODO +C och D ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/24.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/24.md index 3b8ae9a..835a9dd 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/24.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/24.md @@ -12,9 +12,10 @@ date: 2022-01-15 ![[image-3.png]] Bilden visar en del av retina med glaskroppen uppĂ„t. Matcha de olika strukturerna med rĂ€tt siffra: (0.5p per rĂ€tt svar, inga avdrag för fel svar) -- Mullerglias cellkĂ€rnor (1, 2, 4, 3, 5). -- Stavarnas och tapparnas fotoreceptorer (1, 3, 5, 4, 2) +- a) Mullerglias cellkĂ€rnor (1, 2, 4, 3, 5). +- b) Stavarnas och tapparnas fotoreceptorer (1, 3, 5, 4, 2) ```spoiler-block: -TODO +a) 4 +b) 2 ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/25.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/25.md index 74e88c3..e74fc88 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/25.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/25.md @@ -17,5 +17,6 @@ a) Vilken siffra pekar pĂ„ incus? (1..19) b) Vilken siffra pekar pĂ„ tuba auditiva? (1..19) ```spoiler-block: -TODO +a) 7 +b) 18 ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/26.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/26.md index 8ef3322..7cf45a5 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/26.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/26.md @@ -11,5 +11,5 @@ Vilka av följande pĂ„stĂ„enden om örat Ă€r korrekta? - D: Ganglion spirale Ă€r ett stort klumpformat ganglion bakom cochlean. ```spoiler-block: -TODO +B och C ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/27.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/27.md index 333c72d..c2ba7bd 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/27.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/27.md @@ -11,5 +11,5 @@ Vilka av följande pĂ„stĂ„enden om örat Ă€r korrekta? - D: canalis semicircularis, vestibulum och cochlea Ă€r alla delar av benlabyrinten ```spoiler-block: -TODO +B och D ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/28.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/28.md index df86423..39d2bf8 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/28.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/28.md @@ -16,5 +16,5 @@ Vilka pĂ„stĂ„enden Ă€r korrekt om cristae ampullaris? - D: Aktivering av sensoriska afferenter sker via transmittorfrisĂ€ttning frĂ„n hĂ„rcellerna ```spoiler-block: -TODO +B och D ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/29.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/29.md index 18961fc..a518fd2 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/29.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/29.md @@ -11,5 +11,5 @@ Vilka pĂ„stĂ„enden Ă€r korrekta om makula i innerörat ? - D: Är omgiven av perilymfa ```spoiler-block: -TODO +B och C ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/3.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/3.md index a208d6b..514ddf9 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/3.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/3.md @@ -26,5 +26,6 @@ b) Vilket funktionellt centra Ă„terfinns dĂ€r? - Somatosensoriskt centrum ```spoiler-block: -TODO +a) Lobus parietalis +b) Somatosensoriskt centrum ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/30.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/30.md index 5e8d0dc..a6daf6e 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/30.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/30.md @@ -15,11 +15,14 @@ Bilden visar en del av innerörat med förstorning av cortiska organet till hög (0.25p för varje rĂ€tt svar - inga avdrag för fel svar): -- Scala tympani: (A, B, C) -- Stria vascularis: (1, 2, 3, 4). -- Reissners membran: (1, 2, 3, 4) -- Yttre hĂ„rcell : (5, 6, 7, 8) +- a) Scala tympani: (A, B, C) +- b) Stria vascularis: (1, 2, 3, 4). +- c) Reissners membran: (1, 2, 3, 4) +- d) Yttre hĂ„rcell : (5, 6, 7, 8) ```spoiler-block: -TODO +a) C +b) 3 +c) 1 +d) 8 ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/4.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/4.md index 198397e..6b78b0a 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/4.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/4.md @@ -11,5 +11,5 @@ Vilka av följande pĂ„stĂ„enden Ă€r korrekta? - D: Corpus pineale ligger bakom thalamus, i mittlinjen, och Ă€r delaktig i dygnsrytmreglering ```spoiler-block: -TODO +A och D ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/5.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/5.md index f9883a8..95122e4 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/5.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/5.md @@ -11,5 +11,5 @@ Vilka av följande pĂ„stĂ„enden om limbiska systemet Ă€r korrekta? - D: Amygdala har som sin viktigaste funktion minnesinlagring ```spoiler-block: -TODO +A och C ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/6.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/6.md index 29f588d..4a2cd08 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/6.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/6.md @@ -11,5 +11,5 @@ Vilka av följande pĂ„stĂ„enden om _truncus encephali_ Ă€r korrekta? - D: Pyramiden (pyramis) ses ventralt pĂ„ mesencephalons yta ```spoiler-block: -TODO +A och B ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/7.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/7.md index c1a4be3..075dc16 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/7.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/7.md @@ -11,5 +11,5 @@ Vilka av följande pĂ„stĂ„enden om _truncus encephali_ Ă€r korrekta? - D: FrĂ„n Pons gĂ„r det horisontella nervfibrer till cerebellum, via peduncullus cerebellaris superior, medius et inferior. ```spoiler-block: -TODO +A och B ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/8.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/8.md index bc56bb6..d137948 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/8.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/8.md @@ -2,7 +2,7 @@ tags: - ah2 - provfrĂ„ga - - frĂ„getyp/mcq + - frĂ„getyp/scq - anatomi - bild date: 2022-01-15 @@ -19,5 +19,5 @@ Vilken bokstav pĂ„ denna bild sitter pĂ„ Mesencephalon? - F ```spoiler-block: -TODO +F ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/9.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/9.md index 8689e4d..9315da1 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/9.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-01-15/9.md @@ -11,5 +11,5 @@ Vilka av följande pĂ„stĂ„enden Ă€r korrekta? - D: Cerebellum binds till hjĂ€rnstammen via capsula interna ```spoiler-block: -TODO +A och B ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/1.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/1.md index 860de54..e8ca43a 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/1.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/1.md @@ -5,18 +5,21 @@ date: 2022-06-01 Nedan nĂ€mns 4 funktioner, vĂ€lj rĂ€tt cell till rĂ€tt funktion (vissa celler blir sĂ„ledes över) (alla ska vara rĂ€tt för att fĂ„ poĂ€ng) -- ExtracellulĂ€r miljö -- Fagocyterande -- Myelin i CNS -- VentrikelvĂ€ggar och Plexus choroideus +- a) ExtracellulĂ€r miljö +- b) Fagocyterande +- c) Myelin i CNS +- d) VentrikelvĂ€ggar och Plexus choroideus -- Schwanncell -- Oligodendrocyt -- Satellitcell -- Mikroglia -- Astrocyt -- Ependymceller +1. Schwanncell +2. Oligodendrocyt +3. Satellitcell +4. Mikroglia +5. Astrocyt +6. Ependymceller ```spoiler-block: -TODO +a) 5 +b) 6 +c) 2 +d) 1 ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/10.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/10.md index bc77b1d..8c31aef 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/10.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/10.md @@ -2,7 +2,7 @@ tags: - ah2 - provfrĂ„ga - - frĂ„getyp/textalternativ + - frĂ„getyp/scq - histologi - preparat - bild @@ -10,12 +10,12 @@ date: 2022-06-01 --- ![[image-8.png]] Vilken del av CNS syns i bild? -- Cerebellum -- Diencephalon -- Medulla spinalis -- Cerebrum -- Pons +- A: Cerebellum +- B: Diencephalon +- C: Medulla spinalis +- D: Cerebrum +- E: Pons ```spoiler-block: -TODO +A ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/11.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/11.md index 7bdc221..2c0bd1a 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/11.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/11.md @@ -2,7 +2,7 @@ tags: - ah2 - provfrĂ„ga - - frĂ„getyp/textalternativ + - frĂ„getyp/scq - histologi - preparat - bild @@ -10,13 +10,13 @@ date: 2022-06-01 --- ![[image-9.png]] Vilket lager pekar stjĂ€rnan pĂ„? Lamina molekylaris -- Lamina multiformis -- vit substans -- Lamina membrana limitans -- Lamina pyramidalis -- Lamina granularis -- Lamina molekylaris +- A: Lamina multiformis +- B: vit substans +- C: Lamina membrana limitans +- D: Lamina pyramidalis +- E: Lamina granularis +- F: Lamina molekylaris ```spoiler-block: -TODO +F ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/12.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/12.md index 49c29f9..6043f99 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/12.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/12.md @@ -11,5 +11,5 @@ Vilka tvĂ„ pĂ„stĂ„enden Ă€r korrekta avseende motorik? - D: Pyramidbanan förmedlar viljemĂ€ssig finmotorik ```spoiler-block: -TODO +B och D ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/13.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/13.md index b19faa0..087f1a9 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/13.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/13.md @@ -11,5 +11,5 @@ Vilka tvĂ„ pĂ„stĂ„enden Ă€r korrekta avseende sensorik? - D: Om du kapar bakstrĂ€ngsbanan förlorar den patienten all kĂ€nsel ```spoiler-block: -TODO +A och B ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/14.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/14.md index f3b25e0..4526790 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/14.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/14.md @@ -8,8 +8,8 @@ tags: date: 2022-06-01 --- ![[image-10.png]] -Vilken siffra pekar pĂ„ den bana som förmedlar tvĂ„-punktsdiskrimination och vibration? +Vilken siffra pekar pĂ„ den bana som förmedlar tvĂ„-punktsdiskrimination och vibration? (1, 2, 3, 4, 5) ```spoiler-block: -TODO +1 ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/15.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/15.md index 3ef8683..d226fdd 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/15.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/15.md @@ -8,13 +8,12 @@ tags: date: 2022-06-01 --- ![[image-11.png]] -a) Vilken siffra markerar arachnoidea? - -b) Vilken siffra markerar cortex cerebri +a) Vilken siffra markerar arachnoidea? (1..10) (0.5 p) - +b) Vilken siffra markerar cortex cerebri (1..10) (0.5 p) ```spoiler-block: -TODO +a) 8 +b) 10 ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/16.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/16.md index 62c53ee..bfb2e48 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/16.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/16.md @@ -10,11 +10,12 @@ date: 2022-06-01 ![[image-12.png]] Ovan visas ett horisontalsnitt av höger hemisfĂ€r. Vilken siffra pekar pĂ„ -a) nucleus caudatus? +a) nucleus caudatus? (1..11) -b) nucleus lentiformis? +b) nucleus lentiformis? (1..11) (0,5 p per rĂ€tt svar, inga avdrag för fel) ```spoiler-block: -TODO +a) 9 +b) 6 ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/17.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/17.md index 0b7b122..916b550 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/17.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/17.md @@ -18,5 +18,5 @@ I bild visas ett nedre motorneuron i ryggmĂ€rgens framhorn. Vilka bokstĂ€ver pek - E: A till I ```spoiler-block: -TODO +A ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/18.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/18.md index c8db640..8b2442d 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/18.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/18.md @@ -2,7 +2,7 @@ tags: - ah2 - provfrĂ„ga - - frĂ„getyp/textalternativ + - frĂ„getyp/scq - histologi - preparat - bild @@ -10,12 +10,12 @@ date: 2022-06-01 --- ![[image-14.png]] Vilka celler Ă€r specialfĂ€rgade i detta preparat frĂ„n CNS? -- oligodendrocyter -- stjĂ€rnceller -- Astrocyter -- korgceller -- mikroglia +- A: oligodendrocyter +- B: stjĂ€rnceller +- C: Astrocyter +- D: korgceller +- E: mikroglia ```spoiler-block: -TODO +C ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/19.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/19.md index 2605341..fe643a8 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/19.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/19.md @@ -11,5 +11,5 @@ Vilka tvĂ„ pĂ„stĂ„enden Ă€r korrekta avseende ögat? - D: I retina Ă„terfinns flest stavar och tappar i gula flĂ€cken ```spoiler-block: -TODO +A och B ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/2.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/2.md index cabe2c5..75288ee 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/2.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/2.md @@ -11,5 +11,5 @@ Vilka tvĂ„ pĂ„stĂ„enden Ă€r korrekta avseende neuronet? - D: De övre motorneuronen sitter i cortex cerebri, lobus frontalis ```spoiler-block: -TODO +C och D ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/20.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/20.md index 0b835e1..7f2a336 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/20.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/20.md @@ -11,5 +11,5 @@ Vilka tvĂ„ pĂ„stĂ„enden Ă€r korrekta avseende ögat? - D: Choroidea övergĂ„r anteriort i corpus ciliare och iris ```spoiler-block: -TODO +C och D ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/21.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/21.md index 87e01ae..e899d55 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/21.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/21.md @@ -10,14 +10,13 @@ date: 2022-06-01 --- ![[image-15.png]] Vilka siffror pekar pĂ„ - -a) Cornea? - -b) Retina? - -c) Corpus vitreum +a) Cornea? (1..15) +b) Retina? (1..15) +c) Corpus vitreum (1..15) (alla rĂ€tt ger 1p, annars inga poĂ€ng) ```spoiler-block: -TODO +a) 1 +b) 11 +c) 14 ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/22.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/22.md index 3010691..59eceab 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/22.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/22.md @@ -6,8 +6,10 @@ Vad Ă€r rĂ€tt om iris: **VĂ€lj tvĂ„ alternativ:** - A: Iris Ă€r den anteriora (frĂ€mre) förlĂ€ngningen av ciliarkroppen -- B: Baksidan av iris (mot linsen) har pigmenterat epitel kontraktion av dilatormuskeln drar ihop pupillen framsidan av iris beklĂ€ds av flerskiktat skivepitel +- B: Baksidan av iris (mot linsen) har pigmenterat epitel +- C: kontraktion av dilatormuskeln drar ihop pupillen +- D: framsidan av iris beklĂ€ds av flerskiktat skivepitel ```spoiler-block: -TODO +A och B ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/23.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/23.md index 8a34dd0..6fd301f 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/23.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/23.md @@ -11,5 +11,5 @@ Vad Ă€r rĂ€tt om retinas bipolĂ€ra neuron? - D: De bipolĂ€ra neuronen fĂ„r stöd frĂ„n oligodendrocyter ```spoiler-block: -TODO +A och B ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/24.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/24.md index 30247aa..e905e72 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/24.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/24.md @@ -11,11 +11,14 @@ date: 2022-06-01 --- ![[image-16.png]] **Fyll i rĂ€tt siffra _(0,25p för varje rĂ€tt svar, inget avdrag för fel svar)_:** -- Vilken siffra markerar choroidea? -- Vilken siffra markerar pigementepitelet? -- Vilken siffra markerar sclera? -- Vilken siffra markerar lagret dĂ€r de bipolĂ€ra neuronen har sin cellkĂ€rna? +- a) Vilken siffra markerar choroidea? (1..8) +- b) Vilken siffra markerar pigementepitelet? (1..8) +- c) Vilken siffra markerar sclera? (1..8) +- d) Vilken siffra markerar lagret dĂ€r de bipolĂ€ra neuronen har sin cellkĂ€rna? (1..8) ```spoiler-block: -TODO +a) 3 +b) 4 +c) 1 +d) 7 ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/25.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/25.md index e042f56..7ffc87f 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/25.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/25.md @@ -11,5 +11,5 @@ Vilka tvĂ„ pĂ„stĂ„enden Ă€r korrekta avseende örat? - D: I Utriculus och Sacculus Ă„terfinns de omrĂ„den som registrerar linjĂ€r acceleration och lĂ€ge (dvs gravitation). ```spoiler-block: -TODO +A och B ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/26.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/26.md index d4752fe..0fd9928 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/26.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/26.md @@ -11,5 +11,5 @@ Vilka tvĂ„ pĂ„stĂ„enden Ă€r korrekta avseende örat? - D: De centrala ljudbanorna gĂ„r frĂ„n hjĂ€rnstammen upp till thalamus och vidare till temporalloben ```spoiler-block: -TODO +B och D ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/27.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/27.md index b1da33b..f72e310 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/27.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/27.md @@ -9,8 +9,11 @@ date: 2022-06-01 --- ![[image-17.png]] Vilka siffror pekar pĂ„ örats luftförande rum? +a) svar (1..13) +b) och (1..13) (skriv en siffra i varje ruta, bĂ„da ska vara rĂ€tt för att ge poĂ€ng) ```spoiler-block: -TODO +a) 12 +b) 13 ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/28.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/28.md index 5772ee9..a70daa1 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/28.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/28.md @@ -5,9 +5,11 @@ date: 2022-06-01 Vad Ă€r rĂ€tt om Cortiska organet? **VĂ€lj tvĂ„ alternativ:** -- A: Det innehĂ„ller hĂ„rceller, stödjeceller och pelarceller hĂ„rcellernas apikala yta omges av endolymfa -- B: Det ligger i scala vestibuli hĂ„rcellernas apikala yta omges av perilymfa +- A: Det innehĂ„ller hĂ„rceller, stödjeceller och pelarceller +- B: hĂ„rcellernas apikala yta omges av endolymfa +- C: Det ligger i scala vestibuli +- D: hĂ„rcellernas apikala yta omges av perilymfa ```spoiler-block: -TODO +A och B ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/29.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/29.md index e4d8abf..4821c31 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/29.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/29.md @@ -6,8 +6,10 @@ Vad Ă€r rĂ€tt om crista ampullaris **VĂ€lj tvĂ„ alternativ:** - A: Registrerar rotation -- B: Finns i utriculus och sacculus har en geleaktig cupula registrerar gravitation +- B: Finns i utriculus och sacculus +- C: har en geleaktig cupula +- D: registrerar gravitation ```spoiler-block: -TODO +A och C ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/3.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/3.md index 4a2c1bc..1ad4384 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/3.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/3.md @@ -14,5 +14,5 @@ Vilka tvĂ„ cellager Ă€r förstorade i motorisk cortex jfr övriga cortex cerebri - F: Lamina granularis interna ```spoiler-block: -TODO +B och E ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/30.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/30.md index 1bfa957..6060aad 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/30.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/30.md @@ -12,14 +12,14 @@ date: 2022-06-01 ![[image-18.png]] **Fyll i rĂ€tt siffra _(0,25p för varje rĂ€tt svar, inget avdrag för fel svar)_:** -a) vestibularismembraet (Reissners membran) - -b) Axonbuntar - -c) stria vascularis - -d) tektorialmembranet +a) vestibularismembraet (Reissners membran) (1..9) +b) Axonbuntar (1..9) +c) stria vascularis (1..9) +d) tektorialmembranet (1..9) ```spoiler-block: -TODO +a) 2 +b) 8 +c) 3 +d) 5 ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/4.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/4.md index b8cca61..3bf72aa 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/4.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/4.md @@ -5,13 +5,22 @@ date: 2022-06-01 Placera varje funktion i rĂ€tt lob (alla ska vara rĂ€tt för att fĂ„ poĂ€ng) -Motorik Hörsel ANS Syn somatosensorisk -Lobus parietalis -Lobus occipitalis -Lobus temporalis -Lobus insularis (insula) -Lobus frontalis +- Motorik +- Hörsel +- ANS +- Syn +- somatosensorisk + +- Lobus parietalis +- Lobus occipitalis +- Lobus temporalis +- Lobus insularis (insula) +- Lobus frontalis ```spoiler-block: -TODO +Motorik: Lobus frontalis +Hörsel: Lobus temporalis +ANS: Lobus insularis (insula) +Syn: Lobus occipitalis +somatosensorisk: Lobus parietalis ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/5.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/5.md index 6b4b1ed..24b731e 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/5.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/5.md @@ -9,12 +9,11 @@ date: 2022-06-01 --- ![[image-6.png]] Vilken siffra markerar - a) corpus callosum? - b) center för övre endokrin styrning? (0.5p för varje rĂ€tt svar, inga avdrag för fel) ```spoiler-block: -TODO +a) 12 +b) 10 ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/6.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/6.md index 84307c2..cb9ee39 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/6.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/6.md @@ -9,12 +9,11 @@ date: 2022-06-01 --- ![[image-7.png]] Vilken bokstav pekar pĂ„ - a) sulcus centralis - b) den del av CNS som arbetar mest med koordination och balans? (0.5p för varje rĂ€tt svar, inga avdrag för fel) ```spoiler-block: -TODO +a) A +b) E ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/7.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/7.md index 0e5fc70..a9e10cb 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/7.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/7.md @@ -1,5 +1,5 @@ --- -tags: [ah2, provfrĂ„ga, frĂ„getyp/mcq, anatomi, öra] +tags: [ah2, provfrĂ„ga, frĂ„getyp/scq, anatomi, öra] date: 2022-06-01 --- a) Var Ă„terfinns nucleus ruber? (0,5p) @@ -19,5 +19,6 @@ b) Vad Ă€r dess (alltsĂ„ nucleus rubers) funktion? (0.5p) - D: KĂ€nsel ```spoiler-block: -TODO +a) B +b) C ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/8.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/8.md index 72f2b3b..b12b0c7 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/8.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/8.md @@ -11,5 +11,5 @@ Vilka tvĂ„ pĂ„stĂ„enden Ă€r korrekta avseende hjĂ€rnstammen? - D: Pyramis och Oliva kan ses vid ventral vy av hjĂ€rnstammens nedre tredjedel ```spoiler-block: -TODO +B och D ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/9.md b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/9.md index 0820d5a..7099cd3 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/9.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2022-06-01/9.md @@ -11,5 +11,5 @@ Vilka tvĂ„ pĂ„stĂ„ende Ă€r korrekta avseende ventrikelsystemet? - D: Plexus choroideus byggs upp av pia mater, ependymceller och blodkĂ€rl och hĂ€r produceras cerebrospinalvĂ€tska ```spoiler-block: -TODO +C och D ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/1.md b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/1.md index f6e82b2..10d1ce5 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/1.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/1.md @@ -11,5 +11,5 @@ Vilka tvĂ„ av följande pĂ„stĂ„ende Ă€r korrekta avseende meninges? - D: Dura mater bestĂ„r av stram bindvĂ€v och bildar ett fysisk skydd kring hjĂ€rnan. ```spoiler-block: -TODO +B och D ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/10.md b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/10.md index 25bc7b5..52aac9e 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/10.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/10.md @@ -10,11 +10,11 @@ date: 2023-01-11 ![[image-19.png]] Vilken bokstav markerar -a) en stor grupp av kĂ€rnor som tar emot afferens till storhjĂ€rnan - -b) corpus callosum? +a) en stor grupp av kĂ€rnor som tar emot afferens till storhjĂ€rnan (A..H) +b) corpus callosum? (A..H) (0,5 p per rĂ€tt svar) ```spoiler-block: -TODO +a) C +b) A ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/11.md b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/11.md index 3267402..1782bb7 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/11.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/11.md @@ -8,9 +8,9 @@ tags: date: 2023-01-11 --- ![[image-20.png]] -Vilken siffra markerar nucleus lentiformis pĂ„ detta horisontalsnitt av höger storhjĂ€rnshalva +Vilken siffra markerar nucleus lentiformis pĂ„ detta horisontalsnitt av höger storhjĂ€rnshalva (1..11) (anteriort Ă€r till vĂ€nster i bild och lateralt Ă€r uppĂ„t i bild)? 6 (1p) ```spoiler-block: -TODO +6 ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/12.md b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/12.md index 258f7f7..d377658 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/12.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/12.md @@ -8,9 +8,9 @@ tags: date: 2023-01-11 --- ![[image-21.png]] -Vilken siffra markerar var det sitter viktiga autonoma centra för kontroll av andning, blodtryck och -8 hjĂ€rtfrekvensreglering? (1p) +Vilken siffra markerar var det sitter viktiga autonoma centra för kontroll av andning, blodtryck och hjĂ€rtfrekvensreglering? (1..13) +(1p) ```spoiler-block: -TODO +8 ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/14.md b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/14.md index c963352..2fcff77 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/14.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/14.md @@ -9,12 +9,11 @@ date: 2023-01-11 --- ![[image-23.png]] Vilken siffra markerar lokalisation av: - -a) gyrus precentralis? - -b) hypothalamus? +a) gyrus precentralis? (1..13) +b) hypothalamus? (1..13) (0,5 p per rĂ€tt svar) ```spoiler-block: -TODO +a) 1 +b) 10 ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/15.md b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/15.md index 0b1aec2..8dc1af9 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/15.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/15.md @@ -10,8 +10,9 @@ date: 2023-01-11 ![[image-24.png]] Okej, denna frĂ„ga Ă€r lite svĂ„rare. Bild A visar en frisk ryggmĂ€rg (DC = dorsal column/bakstrĂ€ng, AH = anterior horn/framhorn), övriga bilder visar olika typer av skador, dĂ€r rött markerar skadans utbredning. -Vilken bokstav markerar hĂ€r en sjukdomsprocess som borde ge upphov till nedsatt tvĂ„punktsdiskrimination och nedsatt proprioception pĂ„ bĂ€gge sidor nedom skadan, utan att pĂ„verka vare sig motorik eller smĂ€rtkĂ€nsel? _(1p)_ +Vilken bokstav markerar hĂ€r en sjukdomsprocess som borde ge upphov till nedsatt tvĂ„punktsdiskrimination och nedsatt proprioception pĂ„ bĂ€gge sidor nedom skadan, utan att pĂ„verka vare sig motorik eller smĂ€rtkĂ€nsel? (A..H) +(1p) ```spoiler-block: -TODO +C ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/16.md b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/16.md index 25a1a2b..dff22a6 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/16.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/16.md @@ -11,5 +11,5 @@ Vilka pĂ„stĂ„enden stĂ€mmer pĂ„ gliaceller i CNS? - D: Ependymceller Ă€r neuromuskulĂ€ra celler som kontraherar för att stimulera flöde av likvor ```spoiler-block: -TODO +A och C ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/17.md b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/17.md index 6878219..f37f35d 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/17.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/17.md @@ -11,5 +11,5 @@ Vilka pĂ„stĂ„enden stĂ€mmer pĂ„ uppbyggnad av cerebellums cortex? - D: Korncellernas cellkroppar finns i lamina molekylaris ```spoiler-block: -TODO +A och C ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/18.md b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/18.md index d08104e..eb80ec0 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/18.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/18.md @@ -9,16 +9,28 @@ tags: date: 2023-01-11 --- Rektangeln markerar en del av motorcortex i en rĂ„tthjĂ€rna. Namnge de olika lagren genom att dra rĂ€tt namn till rĂ€tt siffra (alla rĂ€tt = 1p) - ![[image-25.png]] -Lamina molekylaris -Lamina granularis externa -Lamina pyramidalis extern -Lamina granularis interna -Lamina pyramidalis interna -Lamina multiformis +1) +2) +3) +4) +5) +6) + +- Lamina granularis externa +- Lamina granularis interna +- Lamina molekylaris +- Lamina multiformis +- Lamina pyramidalis extern +- Lamina pyramidalis interna ```spoiler-block: -TODO +1) Lamina molekylaris +2) Lamina granularis externa +3) Lamina pyramidalis extern +4) Lamina granularis interna +5) Lamina pyramidalis interna +6) Lamina multiformis + ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/19.md b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/19.md index 167da23..80b5858 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/19.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/19.md @@ -11,5 +11,5 @@ Vilka tvĂ„ av följande pĂ„stĂ„ende Ă€r korrekta avseende ögats anatomi? - D: I retina Ă„terfinns ett pigmentlager, vilket ger upphov till pupillens svarta fĂ€rg ```spoiler-block: -TODO +B och D ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/2.md b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/2.md index 7ec945b..9292065 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/2.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/2.md @@ -11,5 +11,5 @@ Vilka tvĂ„ av följande pĂ„stĂ„ende Ă€r korrekta ? - D: Prefrontalkortex sitter anteriort i frontalloben och hĂ€r Ă„terfinns frĂ€mst tolkning av syn, hörsel och kĂ€nsel. ```spoiler-block: -TODO +A och B ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/20.md b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/20.md index 016167f..548c2e8 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/20.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/20.md @@ -11,5 +11,5 @@ Vilka tvĂ„ av följande pĂ„stĂ„ende Ă€r korrekta avseende ögats anatomi? - D: Visuell afferens börjar, via interneuron, att bearbetas redan i retina ```spoiler-block: -TODO +A och D ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/21.md b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/21.md index 520593e..9aa4a50 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/21.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/21.md @@ -11,11 +11,11 @@ date: 2023-01-11 ![[image-26.png]] Vilken siffra/bokstav markerar -a) cornea - -b) synnervens intrĂ€de? +a) cornea (1..15) +b) synnervens intrĂ€de? (1..15) (0,5p per rĂ€tt svar) ```spoiler-block: -TODO +a) 1 +b) 15 ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/22.md b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/22.md index 375d810..9bb6994 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/22.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/22.md @@ -10,11 +10,11 @@ tags: date: 2023-01-11 --- ![[image-27.png]] -a) Vilken siffra markerar gangliecellerna? - -b) Vilken siffra markerar stavarna och tapparnas cellkĂ€rnor? +a) Vilken siffra markerar gangliecellerna? (1..5) +b) Vilken siffra markerar stavarna och tapparnas cellkĂ€rnor? (1..5) (bĂ„da ska vara rĂ€tt för att fĂ„ poĂ€ng = 1p) ```spoiler-block: -TODO +a) 5 +b) 3 ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/23.md b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/23.md index 4e2b77f..affda94 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/23.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/23.md @@ -12,11 +12,11 @@ date: 2023-01-11 ![[image-28.png]] Bilden visar en anterior del av ögat. Vilken siffra markerar -a) en struktur som reglerar pupillens storlek? - -b) en struktur som tĂ€cks av ett flerskiktat orförhornat skivepitel? +a) en struktur som reglerar pupillens storlek? (1..5) +b) en struktur som tĂ€cks av ett flerskiktat orförhornat skivepitel? (1..5) (0,5p per rĂ€tt svar) ```spoiler-block: -TODO +a) 5 +b) 3 ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/24.md b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/24.md index 0c6b8e0..1c9d831 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/24.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/24.md @@ -10,5 +10,5 @@ Vilka tvĂ„ pĂ„stĂ„enden stĂ€mmer pĂ„ ögats lins? - C: Har glattmuskulatur som styr ackommodation ```spoiler-block: -TODO +A och B ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/25.md b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/25.md index 5ec5ad9..4db8fcd 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/25.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/25.md @@ -11,5 +11,5 @@ Vilka tvĂ„ av följande pĂ„stĂ„ende Ă€r korrekta avseende örats anatomi? - D: Örat delas in i tre delar, dĂ€r alla Ă€r helt inneslutna i temporalbenet. ```spoiler-block: -TODO +A och C ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/26.md b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/26.md index 3b894e7..a030b15 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/26.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/26.md @@ -11,5 +11,5 @@ Vilka tvĂ„ av följande pĂ„stĂ„ende Ă€r korrekta avseende örats anatomi? - D: I bĂ„ggĂ„ngarna finns crista ampullaris och i vestibulum finns macula ```spoiler-block: -TODO +A och D ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/27.md b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/27.md index f2b67fa..97bad3e 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/27.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/27.md @@ -11,11 +11,11 @@ date: 2023-01-11 ![[image-29.png]] Vilken siffra markerar -a) stapes - -b) den struktur cortiska organet Ă„terfinns i? +a) stapes (1..19) +b) den struktur cortiska organet Ă„terfinns i? (1..19) (0,5 p per rĂ€tt svar) ```spoiler-block: -TODO +a) 16 +b) 19 ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/28.md b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/28.md index ad2c046..ad764b3 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/28.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/28.md @@ -10,5 +10,5 @@ Vilka tvĂ„ pĂ„stĂ„enden stĂ€mmer pĂ„ mellanörat? - C: Hörselbenen omges av ett perikondrium ```spoiler-block: -TODO +A och C ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/29.md b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/29.md index 51baf74..11a9cb2 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/29.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/29.md @@ -10,11 +10,11 @@ tags: date: 2023-01-11 --- ![[image-30.png]] -a) Vilket utrymme innehĂ„ller vĂ€tska med högst koncentration av K+-joner? (ange bokstav)? - -b) Vilken siffra markerar en "inre hĂ„rcell"? +a) Vilket utrymme innehĂ„ller vĂ€tska med högst koncentration av K+-joner? (ange bokstav)? (A, B, C) +b) Vilken siffra markerar en "inre hĂ„rcell"? (1..8) (0,5p per rĂ€tt svar) ```spoiler-block: -TODO +a) B +b) 5 ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/3.md b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/3.md index 373f003..93d8807 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/3.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/3.md @@ -11,5 +11,5 @@ Vilka tvĂ„ av följande pĂ„stĂ„ende Ă€r korrekta avseende cerebrum? - D: Capsula interna bildas av projektionsbanor, bland annat pyramidbanan ```spoiler-block: -TODO +A och D ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/30.md b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/30.md index f312515..bdf10d0 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/30.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/30.md @@ -10,11 +10,11 @@ tags: date: 2023-01-11 --- ![[image-31.png]] -a) Vilken siffra pekar pĂ„ strukturen som separerar scala media frĂ„n scala vestibuli ? - -b) Vilken siffra pekar pĂ„ nervcellerna (somat) som innerverar hĂ„rcellerna? +a) Vilken siffra pekar pĂ„ strukturen som separerar scala media frĂ„n scala vestibuli ? (1..9) +b) Vilken siffra pekar pĂ„ nervcellerna (somat) som innerverar hĂ„rcellerna? (1..9) (0,5p per rĂ€tt svar) ```spoiler-block: -TODO +a) 2 +b) 7 ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/4.md b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/4.md index cfc2966..56c3403 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/4.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/4.md @@ -11,5 +11,5 @@ Vilka tvĂ„ av följande pĂ„stĂ„ende Ă€r korrekta avseende diencephalon? - D: Tallkottkörteln sitter posteriort om thalamus och ncl subthalamicus sitter inferiort om thalamus ```spoiler-block: -TODO +B och D ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/5.md b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/5.md index f7fbb36..ba12d9b 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/5.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/5.md @@ -11,5 +11,5 @@ Vilka tvĂ„ av följande pĂ„stĂ„ende Ă€r korrekta avseende truncus encephali? - D: Pyramidbanan passerar genom hela hjĂ€rnstammen ```spoiler-block: -TODO +C och D ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/6.md b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/6.md index 219833e..50b6a23 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/6.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/6.md @@ -11,5 +11,5 @@ Vilka tvĂ„ av följande pĂ„stĂ„ende Ă€r korrekta avseende cerebellum? - D: Cortex cerebelli Ă€r mycket tĂ€tt veckat och har faktiskt i princip lika mĂ„nga neuron som, den volymmĂ€ssigt större, cerebrum ```spoiler-block: -TODO +A och D ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/7.md b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/7.md index 2b3d715..7603468 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/7.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/7.md @@ -11,5 +11,5 @@ Vilka tvĂ„ av följande pĂ„stĂ„ende Ă€r korrekta avseende medulla spinalis anato - D: De stora bansystemen bildar tre kolumner genom hela ryggmĂ€rgen ```spoiler-block: -TODO +B och C ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/8.md b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/8.md index b1da564..8e938b6 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/8.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/8.md @@ -11,5 +11,5 @@ Vilka tvĂ„ av följande pĂ„stĂ„ende Ă€r korrekta avseende CNS funktionella anato - D: En motorisk enhet utgörs av de muskelfibrer som innerveras av en spinalnerv ```spoiler-block: -TODO +B och C ``` diff --git a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/9.md b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/9.md index 962f9f0..89c1fe1 100644 --- a/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/9.md +++ b/content/Anatomi & Histologi 2/Gamla tentor/2023-01-11/9.md @@ -11,5 +11,5 @@ Vilka tvĂ„ av följande pĂ„stĂ„ende Ă€r korrekta avseende CNS funktionella anato - D: Syn förmedlas via andra kranialnerven och lukt via första kranialnerven ```spoiler-block: -TODO +B och D ``` diff --git a/content/Anatomi & Histologi 2/Statistik.md b/content/Anatomi & Histologi 2/Statistik.md index f9d333f..e785766 100644 --- a/content/Anatomi & Histologi 2/Statistik.md +++ b/content/Anatomi & Histologi 2/Statistik.md @@ -1,10 +1,10 @@ ### Tentor | Datum | OCR | Split | Bilder | Hotspot | Taggad | Svar | Granska | -| ---------- | :-: | :---: | :----: | :-----: | :----: | ---- | ------- | -| 2022-01-15 | ✅ | ✅ | ✅ | | ✅ | | | -| 2022-06-01 | ✅ | ✅ | ✅ | | ✅ | | | -| 2023-01-11 | ✅ | ✅ | ✅ | | ✅ | | | +| ---------- | :-: | :---: | :----: | :-----: | :----: | :--: | ------- | +| 2022-01-15 | ✅ | ✅ | ✅ | | ✅ | ✅ | | +| 2022-06-01 | ✅ | ✅ | ✅ | | ✅ | ✅ | | +| 2023-01-11 | ✅ | ✅ | ✅ | | ✅ | ✅ | | | 2023-05-31 | ✅ | ✅ | ✅ | | ✅ | | | | 2024-01-10 | ✅ | ✅ | ✅ | | ✅ | | | | 2024-05-29 | ✅ | ✅ | ✅ | | ✅ | | | diff --git a/quiz/IMPLEMENTATION_SUMMARY.md b/quiz/IMPLEMENTATION_SUMMARY.md new file mode 100644 index 0000000..3a20cf1 --- /dev/null +++ b/quiz/IMPLEMENTATION_SUMMARY.md @@ -0,0 +1,143 @@ +# Auto-Import Implementation Summary + +## What was implemented: + +### 1. Dependencies (pyproject.toml) +- Created `pyproject.toml` in `quiz/` directory +- Added Django and watchdog dependencies +- Configured for `uv` package manager + +### 2. Question Importer (quiz/utils/importer.py) +- `ImportStats` class: Tracks import statistics including: + - Total files found + - MCQ vs non-MCQ questions + - Questions with answers vs TODO placeholders + - Created vs updated counts + - Per-folder completion statistics +- `parse_markdown_question()`: Parses markdown files to extract: + - Question text + - Options (supports both `- A:` and `- A` formats) + - Correct answer from spoiler blocks + - Skips questions with "TODO" answers +- `import_question_file()`: Imports a single question file +- `import_questions()`: Bulk import with statistics +- `delete_question_by_path()`: Removes deleted questions from database + +### 3. File System Watcher (quiz/utils/watcher.py) +- `QuestionFileHandler`: Handles file system events with: + - 2-second debounce for file changes + - Auto-import on file create/modify + - Auto-delete on file removal + - Real-time console feedback +- `QuestionWatcher`: Main watcher class using watchdog Observer +- `start_watcher_thread()`: Starts watcher in background daemon thread + - Performs initial full import on startup + - Displays comprehensive statistics + - Continues watching for changes + +### 4. Django Integration +- Updated `QuizAppConfig.ready()` in `apps.py`: + - Automatically starts watcher thread on Django startup + - Runs in daemon thread (doesn't block shutdown) + - Only runs in main process (not reloader) +- Updated `import_questions` management command: + - Uses refactored importer + - Shows detailed statistics output +- Added `QUESTION_WATCH_PATH` setting to `settings.py` + +## Current Statistics: +``` +Total .md files found: 312 +MCQ questions found: 162 +Non-MCQ skipped: 152 +Questions with answers: 6 +Questions with TODO: 154 +Overall completion: 3.7% + +Completion by Exam Folder: +2022-01-15 2/ 25 MCQ ( 8.0%) +2022-06-01 4/ 19 MCQ ( 21.1%) +2023-01-11 0/ 17 MCQ ( 0.0%) +2023-05-31 0/ 10 MCQ ( 0.0%) +2024-01-10 0/ 14 MCQ ( 0.0%) +2024-05-29 0/ 14 MCQ ( 0.0%) +2025-01-15 0/ 16 MCQ ( 0.0%) +2025-02-08 0/ 16 MCQ ( 0.0%) +2025-06-03 0/ 16 MCQ ( 0.0%) +2025-08-08 0/ 15 MCQ ( 0.0%) +``` + +## How it works: + +1. **On Django startup**: + - Background thread starts automatically + - Performs initial import of all questions + - Displays comprehensive statistics + - Begins watching for file changes + +2. **When you edit a question in Obsidian**: + - Watcher detects file change + - Waits 2 seconds (debounce multiple saves) + - Automatically imports/updates the question + - Shows console feedback + +3. **When you delete a question file**: + - Watcher detects deletion + - Removes question from database + +4. **Manual import**: + - Run: `python3 manage.py import_questions` + - Shows same detailed statistics + +## Future considerations: + +### Multi-select questions support: +Currently the `Question.correct_answer` field is `max_length=1`, which only supports single answers. Many questions have "VĂ€lj tvĂ„ alternativ" and answers like "B och D" or "B, D". + +To support multi-select: +1. Update `Question.correct_answer` to `max_length=50` +2. Create Django migration +3. Update `parse_markdown_question()` to extract multiple letters (e.g., "B och D" → "B,D") +4. Update `views.py` answer validation to compare sorted comma-separated values +5. Update quiz UI to allow selecting multiple options + +### Answer format normalization: +Need to standardize multi-select answer format in Obsidian: +- Current: "B och D", "B, D", "BD" +- Recommended: "B,D" (sorted, comma-separated, no spaces) + +### Question types not yet supported: +- `frĂ„getyp/hotspot`: Image-based clickable questions +- `frĂ„getyp/dnd-text`: Drag-and-drop text matching +- `frĂ„getyp/textfĂ€lt`: Free text input questions +- `frĂ„getyp/sammansatt`: Multi-part questions + +These are currently skipped during import. + +## Testing the implementation: + +1. **Start Django server**: + ```bash + cd /Users/johandahlin/dev/medical-notes/quiz + python3 manage.py runserver + ``` + You'll see the initial import statistics on startup. + +2. **Test auto-import**: + - Open a question in Obsidian with "TODO" in spoiler block + - Replace "TODO" with a letter (e.g., "B") + - Save the file + - Check Django console for auto-import message + +3. **Test manual import**: + ```bash + python3 manage.py import_questions + ``` + +4. **Check database**: + ```bash + python3 manage.py shell + >>> from quiz.models import Question + >>> Question.objects.count() + ``` + diff --git a/quiz/__pycache__/settings.cpython-314.pyc b/quiz/__pycache__/settings.cpython-314.pyc new file mode 100644 index 0000000..edfaa22 Binary files /dev/null and b/quiz/__pycache__/settings.cpython-314.pyc differ diff --git a/quiz/db.sqlite3 b/quiz/db.sqlite3 new file mode 100644 index 0000000..f79847d Binary files /dev/null and b/quiz/db.sqlite3 differ diff --git a/quiz/db.sqlite3-shm b/quiz/db.sqlite3-shm new file mode 100644 index 0000000..71677fc Binary files /dev/null and b/quiz/db.sqlite3-shm differ diff --git a/quiz/db.sqlite3-wal b/quiz/db.sqlite3-wal new file mode 100644 index 0000000..f9e7391 Binary files /dev/null and b/quiz/db.sqlite3-wal differ diff --git a/quiz/manage.py b/quiz/manage.py new file mode 100755 index 0000000..ad61a15 --- /dev/null +++ b/quiz/manage.py @@ -0,0 +1,23 @@ +#!/usr/bin/env python +"""Django's command-line utility for administrative tasks.""" +import os +import sys + + +def main(): + """Run administrative tasks.""" + os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'settings') + try: + from django.core.management import execute_from_command_line + except ImportError as exc: + raise ImportError( + "Couldn't import Django. Are you sure it's installed and " + "available on your PYTHONPATH environment variable? Did you " + "forget to activate a virtual environment?" + ) from exc + execute_from_command_line(sys.argv) + + +if __name__ == '__main__': + main() + diff --git a/quiz/pyproject.toml b/quiz/pyproject.toml new file mode 100644 index 0000000..b99bf42 --- /dev/null +++ b/quiz/pyproject.toml @@ -0,0 +1,17 @@ +[project] +name = "quiz" +version = "0.1.0" +description = "Medical quiz application with auto-import from Obsidian" +requires-python = ">=3.13" +dependencies = [ + "django>=6.0.0", + "watchdog>=6.0.0", +] + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.uv] +dev-dependencies = [] + diff --git a/quiz/quiz/__init__.py b/quiz/quiz/__init__.py new file mode 100644 index 0000000..63d0683 --- /dev/null +++ b/quiz/quiz/__init__.py @@ -0,0 +1,2 @@ +default_app_config = 'quiz.apps.QuizAppConfig' + diff --git a/quiz/quiz/__pycache__/__init__.cpython-314.pyc b/quiz/quiz/__pycache__/__init__.cpython-314.pyc new file mode 100644 index 0000000..6c43d9d Binary files /dev/null and b/quiz/quiz/__pycache__/__init__.cpython-314.pyc differ diff --git a/quiz/quiz/__pycache__/apps.cpython-314.pyc b/quiz/quiz/__pycache__/apps.cpython-314.pyc new file mode 100644 index 0000000..8035547 Binary files /dev/null and b/quiz/quiz/__pycache__/apps.cpython-314.pyc differ diff --git a/quiz/quiz/__pycache__/middleware.cpython-314.pyc b/quiz/quiz/__pycache__/middleware.cpython-314.pyc new file mode 100644 index 0000000..9a7f48e Binary files /dev/null and b/quiz/quiz/__pycache__/middleware.cpython-314.pyc differ diff --git a/quiz/quiz/__pycache__/models.cpython-314.pyc b/quiz/quiz/__pycache__/models.cpython-314.pyc new file mode 100644 index 0000000..372c6a7 Binary files /dev/null and b/quiz/quiz/__pycache__/models.cpython-314.pyc differ diff --git a/quiz/quiz/__pycache__/urls.cpython-314.pyc b/quiz/quiz/__pycache__/urls.cpython-314.pyc new file mode 100644 index 0000000..6172155 Binary files /dev/null and b/quiz/quiz/__pycache__/urls.cpython-314.pyc differ diff --git a/quiz/quiz/__pycache__/views.cpython-314.pyc b/quiz/quiz/__pycache__/views.cpython-314.pyc new file mode 100644 index 0000000..c04a4d9 Binary files /dev/null and b/quiz/quiz/__pycache__/views.cpython-314.pyc differ diff --git a/quiz/quiz/apps.py b/quiz/quiz/apps.py new file mode 100644 index 0000000..76efcaa --- /dev/null +++ b/quiz/quiz/apps.py @@ -0,0 +1,18 @@ +import os +from django.apps import AppConfig + + +class QuizAppConfig(AppConfig): + name = 'quiz' + default_auto_field = 'django.db.models.BigAutoField' + + def ready(self): + """ + App initialization code. + Starts the auto-import watcher in a background thread. + """ + # Only run in the main process (not in reloader process) + if os.environ.get('RUN_MAIN') == 'true' or os.environ.get('RUN_MAIN') is None: + from quiz.utils.watcher import start_watcher_thread + start_watcher_thread() + diff --git a/quiz/quiz/management/__init__.py b/quiz/quiz/management/__init__.py new file mode 100644 index 0000000..8054aae --- /dev/null +++ b/quiz/quiz/management/__init__.py @@ -0,0 +1,2 @@ +# Management commands directory + diff --git a/quiz/quiz/management/__pycache__/__init__.cpython-314.pyc b/quiz/quiz/management/__pycache__/__init__.cpython-314.pyc new file mode 100644 index 0000000..ad30d25 Binary files /dev/null and b/quiz/quiz/management/__pycache__/__init__.cpython-314.pyc differ diff --git a/quiz/quiz/management/commands/__init__.py b/quiz/quiz/management/commands/__init__.py new file mode 100644 index 0000000..16d8208 --- /dev/null +++ b/quiz/quiz/management/commands/__init__.py @@ -0,0 +1,2 @@ +# Management commands + diff --git a/quiz/quiz/management/commands/__pycache__/__init__.cpython-314.pyc b/quiz/quiz/management/commands/__pycache__/__init__.cpython-314.pyc new file mode 100644 index 0000000..d4f6fb4 Binary files /dev/null and b/quiz/quiz/management/commands/__pycache__/__init__.cpython-314.pyc differ diff --git a/quiz/quiz/management/commands/__pycache__/import_questions.cpython-314.pyc b/quiz/quiz/management/commands/__pycache__/import_questions.cpython-314.pyc new file mode 100644 index 0000000..6d8f69d Binary files /dev/null and b/quiz/quiz/management/commands/__pycache__/import_questions.cpython-314.pyc differ diff --git a/quiz/quiz/management/commands/import_questions.py b/quiz/quiz/management/commands/import_questions.py new file mode 100644 index 0000000..8b5dffe --- /dev/null +++ b/quiz/quiz/management/commands/import_questions.py @@ -0,0 +1,37 @@ +from django.core.management.base import BaseCommand +from django.conf import settings +from quiz.utils.importer import import_questions + + +class Command(BaseCommand): + help = 'Import questions from Markdown files' + + def add_arguments(self, parser): + parser.add_argument( + '--folder', + type=str, + default='content/Anatomi & Histologi 2/Gamla tentor', + help='Folder to import questions from (relative to project root)' + ) + + def handle(self, *args, **options): + import_folder = options['folder'] + folder = settings.BASE_DIR.parent / import_folder + + if not folder.exists(): + self.stdout.write(self.style.ERROR(f'Import folder {folder} does not exist')) + return + + self.stdout.write(self.style.SUCCESS(f'Importing questions from {folder}...')) + + stats = import_questions(folder, folder) + + # Output statistics + self.stdout.write(stats.format_output()) + + if stats.errors > 0: + self.stdout.write(self.style.WARNING(f'Completed with {stats.errors} errors')) + else: + self.stdout.write(self.style.SUCCESS('Import completed successfully!')) + + diff --git a/quiz/quiz/middleware.py b/quiz/quiz/middleware.py new file mode 100644 index 0000000..9852285 --- /dev/null +++ b/quiz/quiz/middleware.py @@ -0,0 +1,21 @@ +from .models import User + + +class LazyAuthMiddleware: + """ + Middleware that automatically creates and authenticates users based on session key. + No login required - users are created transparently on first visit. + """ + def __init__(self, get_response): + self.get_response = get_response + + def __call__(self, request): + if not request.session.session_key: + request.session.create() + + session_key = request.session.session_key + user, created = User.objects.get_or_create(session_key=session_key) + request.user = user + + return self.get_response(request) + diff --git a/quiz/quiz/migrations/0001_initial.py b/quiz/quiz/migrations/0001_initial.py new file mode 100644 index 0000000..ea80603 --- /dev/null +++ b/quiz/quiz/migrations/0001_initial.py @@ -0,0 +1,63 @@ +# Generated by Django + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='User', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('session_key', models.CharField(max_length=40, unique=True)), + ('created_at', models.DateTimeField(auto_now_add=True)), + ], + ), + migrations.CreateModel( + name='Question', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('file_path', models.CharField(max_length=500, unique=True)), + ('text', models.TextField()), + ('correct_answer', models.CharField(max_length=1)), + ('created_at', models.DateTimeField(auto_now_add=True)), + ('updated_at', models.DateTimeField(auto_now=True)), + ], + ), + migrations.CreateModel( + name='QuizResult', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('selected_answer', models.CharField(max_length=1)), + ('is_correct', models.BooleanField()), + ('answered_at', models.DateTimeField(auto_now_add=True)), + ('question', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='quiz.question')), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='results', to='quiz.user')), + ], + ), + migrations.CreateModel( + name='Option', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('letter', models.CharField(max_length=1)), + ('text', models.TextField()), + ('question', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='options', to='quiz.question')), + ], + ), + migrations.AlterUniqueTogether( + name='quizresult', + unique_together={('user', 'question')}, + ), + migrations.AlterUniqueTogether( + name='option', + unique_together={('question', 'letter')}, + ), + ] + diff --git a/quiz/quiz/migrations/__init__.py b/quiz/quiz/migrations/__init__.py new file mode 100644 index 0000000..b7693a2 --- /dev/null +++ b/quiz/quiz/migrations/__init__.py @@ -0,0 +1 @@ +# Migrations diff --git a/quiz/quiz/migrations/__pycache__/0001_initial.cpython-314.pyc b/quiz/quiz/migrations/__pycache__/0001_initial.cpython-314.pyc new file mode 100644 index 0000000..970224a Binary files /dev/null and b/quiz/quiz/migrations/__pycache__/0001_initial.cpython-314.pyc differ diff --git a/quiz/quiz/migrations/__pycache__/__init__.cpython-314.pyc b/quiz/quiz/migrations/__pycache__/__init__.cpython-314.pyc new file mode 100644 index 0000000..bb65451 Binary files /dev/null and b/quiz/quiz/migrations/__pycache__/__init__.cpython-314.pyc differ diff --git a/quiz/quiz/models.py b/quiz/quiz/models.py new file mode 100644 index 0000000..dafd814 --- /dev/null +++ b/quiz/quiz/models.py @@ -0,0 +1,47 @@ +from django.db import models + + +class User(models.Model): + session_key = models.CharField(max_length=40, unique=True) + created_at = models.DateTimeField(auto_now_add=True) + + def __str__(self): + return f"User {self.session_key[:8]}" + + +class Question(models.Model): + file_path = models.CharField(max_length=500, unique=True) + text = models.TextField() + correct_answer = models.CharField(max_length=1) + created_at = models.DateTimeField(auto_now_add=True) + updated_at = models.DateTimeField(auto_now=True) + + def __str__(self): + return self.text[:50] + + +class Option(models.Model): + question = models.ForeignKey(Question, on_delete=models.CASCADE, related_name='options') + letter = models.CharField(max_length=1) + text = models.TextField() + + class Meta: + unique_together = ['question', 'letter'] + + def __str__(self): + return f"{self.letter}. {self.text[:30]}" + + +class QuizResult(models.Model): + user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='results') + question = models.ForeignKey(Question, on_delete=models.CASCADE) + selected_answer = models.CharField(max_length=1) + is_correct = models.BooleanField() + answered_at = models.DateTimeField(auto_now_add=True) + + class Meta: + unique_together = ['user', 'question'] + + def __str__(self): + return f"{self.user} - {self.question.text[:30]} - {'✓' if self.is_correct else '✗'}" + diff --git a/quiz/quiz/urls.py b/quiz/quiz/urls.py new file mode 100644 index 0000000..3b2d602 --- /dev/null +++ b/quiz/quiz/urls.py @@ -0,0 +1,11 @@ +from django.urls import path + +from .views import index, get_next_question, submit_answer, stats + +urlpatterns = [ + path('', index, name='index'), + path('next/', get_next_question, name='next_question'), + path('submit/', submit_answer, name='submit_answer'), + path('stats/', stats, name='stats'), +] + diff --git a/quiz/quiz/utils/__init__.py b/quiz/quiz/utils/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/quiz/quiz/utils/__pycache__/__init__.cpython-314.pyc b/quiz/quiz/utils/__pycache__/__init__.cpython-314.pyc new file mode 100644 index 0000000..3dbff2d Binary files /dev/null and b/quiz/quiz/utils/__pycache__/__init__.cpython-314.pyc differ diff --git a/quiz/quiz/utils/__pycache__/importer.cpython-314.pyc b/quiz/quiz/utils/__pycache__/importer.cpython-314.pyc new file mode 100644 index 0000000..f8c80fd Binary files /dev/null and b/quiz/quiz/utils/__pycache__/importer.cpython-314.pyc differ diff --git a/quiz/quiz/utils/__pycache__/watcher.cpython-314.pyc b/quiz/quiz/utils/__pycache__/watcher.cpython-314.pyc new file mode 100644 index 0000000..5487922 Binary files /dev/null and b/quiz/quiz/utils/__pycache__/watcher.cpython-314.pyc differ diff --git a/quiz/quiz/utils/importer.py b/quiz/quiz/utils/importer.py new file mode 100644 index 0000000..8edcffa --- /dev/null +++ b/quiz/quiz/utils/importer.py @@ -0,0 +1,248 @@ +import re +from pathlib import Path +from collections import defaultdict +from typing import Tuple +from quiz.models import Question, Option + + +class ImportStats: + """Track import statistics by exam folder""" + + def __init__(self): + self.total_files = 0 + self.mcq_questions = 0 + self.non_mcq_skipped = 0 + self.questions_with_answers = 0 + self.questions_with_todo = 0 + self.created = 0 + self.updated = 0 + self.errors = 0 + self.by_folder = defaultdict(lambda: { + 'total': 0, + 'mcq': 0, + 'answered': 0, + 'todo': 0 + }) + + def format_output(self) -> str: + """Format statistics for console output""" + lines = [] + lines.append("\n" + "="*70) + lines.append("QUESTION IMPORT STATISTICS") + lines.append("="*70) + lines.append(f"Total .md files found: {self.total_files}") + lines.append(f"MCQ questions found: {self.mcq_questions}") + lines.append(f"Non-MCQ skipped: {self.non_mcq_skipped}") + lines.append(f"Questions with answers: {self.questions_with_answers}") + lines.append(f"Questions with TODO: {self.questions_with_todo}") + lines.append(f"Created in database: {self.created}") + lines.append(f"Updated in database: {self.updated}") + if self.errors > 0: + lines.append(f"Errors: {self.errors}") + + if self.mcq_questions > 0: + completion_pct = (self.questions_with_answers / self.mcq_questions * 100) + lines.append(f"Overall completion: {completion_pct:.1f}%") + + lines.append("\n" + "-"*70) + lines.append("COMPLETION BY EXAM FOLDER") + lines.append("-"*70) + + sorted_folders = sorted(self.by_folder.items()) + for folder, stats in sorted_folders: + if stats['mcq'] > 0: + pct = (stats['answered'] / stats['mcq'] * 100) + lines.append(f"{folder:20} {stats['answered']:3}/{stats['mcq']:3} MCQ ({pct:5.1f}%)") + + lines.append("="*70 + "\n") + return "\n".join(lines) + + +def parse_markdown_question(file_path: Path, content: str) -> Tuple[bool, dict]: + """ + Parse a markdown file and extract question data. + + Returns: + (is_mcq, question_data) where question_data contains: + - text: question text + - options: list of (letter, text) tuples + - correct_answer: the correct answer letter(s) + - has_answer: whether it has an answer (not TODO) + """ + lines = content.split('\n') + + # Check for MCQ tags in frontmatter + is_mcq = False + in_frontmatter = False + for line in lines: + if line.strip() == '---': + in_frontmatter = not in_frontmatter + continue + if in_frontmatter and ('frĂ„getyp/mcq' in line or 'frĂ„getyp/scq' in line): + is_mcq = True + break + + if not is_mcq: + return False, {} + + # Extract question text (first non-empty line after frontmatter) + question_text = None + in_frontmatter = False + frontmatter_done = False + + for line in lines: + if line.strip() == '---': + if not in_frontmatter: + in_frontmatter = True + else: + in_frontmatter = False + frontmatter_done = True + continue + + if frontmatter_done and line.strip() and not line.startswith('![['): + # Skip "VĂ€lj ett/tvĂ„ alternativ:" lines + if 'VĂ€lj' in line and 'alternativ' in line: + continue + if not line.startswith('-') and not line.startswith('```'): + question_text = line.strip().replace('**', '') + break + + if not question_text: + return True, {} + + # Extract options (pattern: "- A:" or "- A" or just "- A:") + options_data = [] + for line in lines: + # Match "- A: text" or "- A: " or just "- A" + match = re.match(r'^-\s*([A-Z]):\s*(.*)$', line.strip()) + if not match: + # Also try "- A" without colon + match = re.match(r'^-\s*([A-Z])$', line.strip()) + + if match: + letter = match.group(1) + text = match.group(2) if len(match.groups()) > 1 else "" + options_data.append((letter, text.strip())) + + if len(options_data) < 2: + return True, {} + + # Extract answer from spoiler block + correct_answer = None + has_answer = False + in_spoiler = False + + for line in lines: + if line.strip().startswith('```spoiler-block:'): + in_spoiler = True + continue + if in_spoiler: + if line.strip() == '```': + break + stripped = line.strip() + if stripped and stripped != 'TODO': + # Extract single letter answer (e.g., "B" or "F") + answer_match = re.match(r'^([A-Z])$', stripped) + if answer_match: + correct_answer = answer_match.group(1) + has_answer = True + break + elif stripped == 'TODO': + break + + return True, { + 'text': question_text, + 'options': options_data, + 'correct_answer': correct_answer, + 'has_answer': has_answer + } + + +def import_question_file(file_path: Path, base_path: Path, stats: ImportStats): + """Import a single question file""" + try: + content = file_path.read_text(encoding='utf-8') + is_mcq, question_data = parse_markdown_question(file_path, content) + + # Track folder stats + relative_path = file_path.relative_to(base_path) + folder_name = relative_path.parts[0] if len(relative_path.parts) > 1 else 'root' + stats.by_folder[folder_name]['total'] += 1 + + if not is_mcq: + stats.non_mcq_skipped += 1 + return + + stats.mcq_questions += 1 + stats.by_folder[folder_name]['mcq'] += 1 + + if not question_data or not question_data.get('text'): + stats.non_mcq_skipped += 1 + return + + if not question_data['has_answer']: + stats.questions_with_todo += 1 + stats.by_folder[folder_name]['todo'] += 1 + return # Skip questions without answers + + stats.questions_with_answers += 1 + stats.by_folder[folder_name]['answered'] += 1 + + # Import to database + file_path_str = str(file_path.relative_to(base_path.parent)) + + question, created = Question.objects.update_or_create( + file_path=file_path_str, + defaults={ + 'text': question_data['text'], + 'correct_answer': question_data['correct_answer'], + } + ) + + if created: + stats.created += 1 + else: + stats.updated += 1 + + # Update options + question.options.all().delete() + for letter, text in question_data['options']: + Option.objects.create(question=question, letter=letter, text=text) + + except Exception as e: + stats.errors += 1 + print(f"Error importing {file_path}: {e}") + + +def import_questions(folder_path: Path, base_path: Path = None) -> ImportStats: + """ + Import all questions from a folder. + + Args: + folder_path: Path to the folder containing question markdown files + base_path: Base path for relative path calculations (defaults to folder_path) + + Returns: + ImportStats object with import statistics + """ + if base_path is None: + base_path = folder_path + + stats = ImportStats() + + for md_file in folder_path.rglob('*.md'): + stats.total_files += 1 + import_question_file(md_file, base_path, stats) + + return stats + + +def delete_question_by_path(file_path: Path, base_path: Path): + """Delete a question from the database by file path""" + try: + file_path_str = str(file_path.relative_to(base_path.parent)) + Question.objects.filter(file_path=file_path_str).delete() + print(f"Deleted question: {file_path_str}") + except Exception as e: + print(f"Error deleting question {file_path}: {e}") + diff --git a/quiz/quiz/utils/watcher.py b/quiz/quiz/utils/watcher.py new file mode 100644 index 0000000..90aff6e --- /dev/null +++ b/quiz/quiz/utils/watcher.py @@ -0,0 +1,132 @@ +import time +import threading +from pathlib import Path +from watchdog.observers import Observer +from watchdog.events import FileSystemEventHandler, FileSystemEvent +from django.conf import settings +from quiz.utils.importer import import_question_file, delete_question_by_path, ImportStats + + +class QuestionFileHandler(FileSystemEventHandler): + """Handle file system events for question markdown files""" + + def __init__(self, base_path: Path, watch_path: Path): + super().__init__() + self.base_path = base_path + self.watch_path = watch_path + self.pending_events = {} + self.debounce_seconds = 2 + self.lock = threading.Lock() + + def _debounced_import(self, file_path: Path): + """Import file after debounce delay""" + time.sleep(self.debounce_seconds) + + with self.lock: + if file_path in self.pending_events: + del self.pending_events[file_path] + + if file_path.exists(): + print(f"\n[Auto-import] Processing: {file_path.name}") + stats = ImportStats() + import_question_file(file_path, self.watch_path, stats) + + if stats.created > 0: + print(f"[Auto-import] ✓ Created question from {file_path.name}") + elif stats.updated > 0: + print(f"[Auto-import] ✓ Updated question from {file_path.name}") + elif stats.questions_with_todo > 0: + print(f"[Auto-import] ⊘ Skipped {file_path.name} (TODO answer)") + elif stats.non_mcq_skipped > 0: + print(f"[Auto-import] ⊘ Skipped {file_path.name} (not MCQ)") + + def _handle_file_change(self, file_path: Path): + """Handle file creation or modification with debouncing""" + if not file_path.suffix == '.md': + return + + with self.lock: + # Cancel pending import if exists + if file_path in self.pending_events: + self.pending_events[file_path].cancel() + + # Schedule new import + timer = threading.Timer(self.debounce_seconds, self._debounced_import, args=[file_path]) + self.pending_events[file_path] = timer + timer.start() + + def on_created(self, event: FileSystemEvent): + """Handle file creation""" + if not event.is_directory: + self._handle_file_change(Path(event.src_path)) + + def on_modified(self, event: FileSystemEvent): + """Handle file modification""" + if not event.is_directory: + self._handle_file_change(Path(event.src_path)) + + def on_deleted(self, event: FileSystemEvent): + """Handle file deletion""" + if not event.is_directory and event.src_path.endswith('.md'): + file_path = Path(event.src_path) + print(f"\n[Auto-import] Deleting: {file_path.name}") + delete_question_by_path(file_path, self.watch_path) + + +class QuestionWatcher: + """Watch for changes in question markdown files and auto-import""" + + def __init__(self, watch_path: Path, base_path: Path = None): + self.watch_path = watch_path + self.base_path = base_path or watch_path + self.observer = None + self.running = False + + def start(self): + """Start watching for file changes""" + if self.running: + return + + self.observer = Observer() + event_handler = QuestionFileHandler(self.base_path, self.watch_path) + self.observer.schedule(event_handler, str(self.watch_path), recursive=True) + self.observer.start() + self.running = True + print(f"[QuestionWatcher] Started watching: {self.watch_path}") + + def stop(self): + """Stop watching for file changes""" + if self.observer and self.running: + self.observer.stop() + self.observer.join() + self.running = False + print("[QuestionWatcher] Stopped") + + +def start_watcher_thread(): + """Start the question watcher in a background thread""" + from quiz.utils.importer import import_questions + + def run_watcher(): + # Get watch path from settings + watch_path_str = getattr(settings, 'QUESTION_WATCH_PATH', 'content/Anatomi & Histologi 2/Gamla tentor') + watch_path = settings.BASE_DIR.parent / watch_path_str + + if not watch_path.exists(): + print(f"[QuestionWatcher] Warning: Watch path does not exist: {watch_path}") + return + + # Initial import + print("\n[QuestionWatcher] Starting initial import...") + stats = import_questions(watch_path, watch_path) + print(stats.format_output()) + + # Start watching for changes + watcher = QuestionWatcher(watch_path, watch_path) + watcher.start() + + # Start in daemon thread so it doesn't block shutdown + thread = threading.Thread(target=run_watcher, name="QuestionWatcher", daemon=True) + thread.start() + print("[QuestionWatcher] Background thread started") + diff --git a/quiz/quiz/views.py b/quiz/quiz/views.py new file mode 100644 index 0000000..c26475e --- /dev/null +++ b/quiz/quiz/views.py @@ -0,0 +1,67 @@ +from django.http import HttpResponse +from django.shortcuts import render +from django.views.decorators.http import require_http_methods + +from .models import Question, QuizResult + + +def index(request): + total_questions = Question.objects.count() + answered_count = QuizResult.objects.filter(user=request.user).count() + + context = { + 'total_questions': total_questions, + 'answered_count': answered_count, + } + return render(request, 'index.html', context) + + +def get_next_question(request): + answered_ids = QuizResult.objects.filter(user=request.user).values_list('question_id', flat=True) + next_question = Question.objects.exclude(id__in=answered_ids).first() + + if not next_question: + return render(request, 'partials/complete.html') + + return render(request, 'partials/question.html', {'question': next_question}) + + +@require_http_methods(["POST"]) +def submit_answer(request): + question_id = request.POST.get('question_id') + selected_answer = request.POST.get('answer') + + if not question_id or not selected_answer: + return HttpResponse("Invalid submission", status=400) + + try: + question = Question.objects.get(id=question_id) + except Question.DoesNotExist: + return HttpResponse("Question not found", status=404) + + is_correct = selected_answer == question.correct_answer + + QuizResult.objects.update_or_create( + user=request.user, + question=question, + defaults={ + 'selected_answer': selected_answer, + 'is_correct': is_correct, + } + ) + + return get_next_question(request) + + +def stats(request): + results = QuizResult.objects.filter(user=request.user) + total = results.count() + correct = results.filter(is_correct=True).count() + + context = { + 'total': total, + 'correct': correct, + 'percentage': round((correct / total * 100) if total > 0 else 0, 1), + } + return render(request, 'stats.html', context) + diff --git a/quiz/settings.py b/quiz/settings.py new file mode 100644 index 0000000..6d2fbb4 --- /dev/null +++ b/quiz/settings.py @@ -0,0 +1,75 @@ +""" +Django settings for quiz application +""" +import os +from pathlib import Path + +# Build paths inside the project +BASE_DIR = Path(__file__).resolve().parent + +# SECURITY WARNING: keep the secret key used in production secret! +SECRET_KEY = os.environ.get('SECRET_KEY', 'django-insecure-change-this-in-production') + +# SECURITY WARNING: don't run with debug turned on in production! +DEBUG = os.environ.get('DEBUG', 'True') == 'True' + +ALLOWED_HOSTS = os.environ.get('ALLOWED_HOSTS', '*').split(',') + +# Application definition +INSTALLED_APPS = [ + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.staticfiles', + 'quiz.apps.QuizAppConfig', +] + +MIDDLEWARE = [ + 'django.middleware.security.SecurityMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.common.CommonMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'quiz.middleware.LazyAuthMiddleware', +] + +ROOT_URLCONF = 'quiz.urls' + +TEMPLATES = [{ + 'BACKEND': 'django.template.backends.django.DjangoTemplates', + 'DIRS': [BASE_DIR / 'templates'], + 'APP_DIRS': True, + 'OPTIONS': { + 'context_processors': [ + 'django.template.context_processors.debug', + 'django.template.context_processors.request', + 'django.contrib.messages.context_processors.messages', + ], + }, +}] + +# Database +# https://docs.djangoproject.com/en/stable/ref/settings/#databases +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': BASE_DIR / 'db.sqlite3', + 'OPTIONS': { + 'init_command': "PRAGMA journal_mode=WAL;", + } + } +} + +# Static files (CSS, JavaScript, Images) +# https://docs.djangoproject.com/en/stable/howto/static-files/ +STATIC_URL = '/static/' +STATIC_ROOT = BASE_DIR / 'static' + +# Default primary key field type +# https://docs.djangoproject.com/en/stable/ref/settings/#default-auto-field +DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' + +# Internationalization +USE_TZ = True + +# Question import settings +QUESTION_WATCH_PATH = 'content/Anatomi & Histologi 2/Gamla tentor' + diff --git a/quiz/templates/base.html b/quiz/templates/base.html new file mode 100644 index 0000000..b169252 --- /dev/null +++ b/quiz/templates/base.html @@ -0,0 +1,21 @@ + + + + + + Quiz + + + + + {% block content %}{% endblock %} + + + diff --git a/quiz/templates/index.html b/quiz/templates/index.html new file mode 100644 index 0000000..5f820d5 --- /dev/null +++ b/quiz/templates/index.html @@ -0,0 +1,10 @@ +{% extends "base.html" %} +{% block content %} +

Quiz Application

+
+
+
+

Besvarade frÄgor: {{ answered_count }} / {{ total_questions }}

+
+{% endblock %} + diff --git a/quiz/templates/partials/complete.html b/quiz/templates/partials/complete.html new file mode 100644 index 0000000..38a8737 --- /dev/null +++ b/quiz/templates/partials/complete.html @@ -0,0 +1,6 @@ +
+

Quiz Completed!

+

Du har besvarat alla frÄgor.

+ Se dina resultat +
+ diff --git a/quiz/templates/partials/question.html b/quiz/templates/partials/question.html new file mode 100644 index 0000000..a46e535 --- /dev/null +++ b/quiz/templates/partials/question.html @@ -0,0 +1,14 @@ +
+

{{ question.text }}

+
+ {% csrf_token %} + + {% for option in question.options.all %} +
+ + +
+ {% endfor %} +
+
+ diff --git a/quiz/templates/stats.html b/quiz/templates/stats.html new file mode 100644 index 0000000..76a840b --- /dev/null +++ b/quiz/templates/stats.html @@ -0,0 +1,11 @@ +{% extends "base.html" %} +{% block content %} +

Dina Resultat

+
+

Totalt besvarade: {{ total }}

+

RĂ€tt svar: {{ correct }}

+

Procent: {{ percentage }}%

+
+Tillbaka till quiz +{% endblock %} + diff --git a/quiz/wsgi.py b/quiz/wsgi.py new file mode 100644 index 0000000..148cc66 --- /dev/null +++ b/quiz/wsgi.py @@ -0,0 +1,17 @@ +""" +WSGI config for quiz project. + +It exposes the WSGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/stable/howto/deployment/wsgi/ +""" + +import os + +from django.core.wsgi import get_wsgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'settings') + +application = get_wsgi_application() +