2023-12-21 20:59:52 +01:00
package db
import (
"database/sql"
"fmt"
"log"
_ "github.com/lib/pq"
)
const (
2024-01-13 13:56:14 +00:00
host = "postgres"
2023-12-21 20:59:52 +01:00
port = 5432 // This is the default port for PostgreSQL
user = "admin"
password = "helse123"
dbname = "helseveileder"
)
func SetupDb ( ) {
// Connection string
psqlInfo := fmt . Sprintf ( "host=%s port=%d user=%s " +
"password=%s dbname=%s sslmode=disable" ,
host , port , user , password , dbname )
// Connect to the database
db , err := sql . Open ( "postgres" , psqlInfo )
if err != nil {
log . Fatalf ( "Error opening database: %v\n" , err )
}
defer db . Close ( )
// Check the connection
err = db . Ping ( )
if err != nil {
log . Fatalf ( "Error connecting to the database: %v\n" , err )
}
// SQL statements to create tables
createTableStatements := [ ] string {
` CREATE TABLE IF NOT EXISTS Spørsmål (
spørsmålID SERIAL PRIMARY KEY ,
tekst TEXT NOT NULL
) ; ` ,
` CREATE TABLE IF NOT EXISTS SpørsmålSvar (
svarID SERIAL PRIMARY KEY ,
spørsmålID INT REFERENCES Spørsmål ( spørsmålID ) ,
chatgpt BOOL NOT NULL ,
svartekst TEXT NOT NULL
) ; ` ,
` CREATE TABLE IF NOT EXISTS Respondent (
respondentID SERIAL PRIMARY KEY ,
alder TEXT NOT NULL ,
utdanningsgrad TEXT NOT NULL ,
helsepersonell BOOL NOT NULL ,
2024-01-10 20:14:14 +01:00
kjønn TEXT NOT NULL ,
svartfør BOOL NOT NULL ,
fylke TEXT NOT NULL ,
dato TEXT NOT NULL
2023-12-21 20:59:52 +01:00
) ; ` ,
` CREATE TABLE IF NOT EXISTS SvarVurdering (
vurderingID SERIAL PRIMARY KEY ,
respondentID INT REFERENCES Respondent ( respondentID ) ,
svarID INT REFERENCES SpørsmålSvar ( svarID ) ,
kunnskap INT ,
empati INT ,
hjelpsomhet INT
) ; ` ,
2024-01-10 19:09:04 +01:00
` CREATE TABLE IF NOT EXISTS Evaluering (
evalueringtekst TEXT
) ; ` ,
` CREATE TABLE IF NOT EXISTS FeilRapport (
feiltekst TEXT
) ; ` ,
2024-01-13 14:50:21 +01:00
` INSERT INTO Spørsmål ( spørsmålID , tekst ) VALUES
( 1 , ' Jeg har noen røde prikker på penishodet , som kan klø . Hva kommer dette av ? ' ) ,
( 2 , ' Jeg føler meg svimmel når jeg står opp , er det normalt ? ' ) ,
( 3 , ' Hvor ofte bør jeg ta en blodtrykkstest ? ' ) ,
( 4 , ' Jeg har vedvarende hoste , bør jeg være bekymret ? ' ) ,
( 5 , ' Hva er de beste måtene å forebygge hjertesykdom på ? ' ) ,
( 6 , ' Hvor lenge varer en vanlig influensasymptomer ? ' ) ,
( 7 , ' Er det normalt å føle seg trøtt etter å ha startet en ny medisin ? ' ) ,
( 8 , ' Hvordan kan jeg vite om jeg har diabetes ? ' ) ,
( 9 , ' Hvilke vaksiner bør jeg vurdere å få som voksen ? ' ) ,
( 10 , ' Er det mulig å ha for høyt nivå av vitaminer ? '
) ; ` ,
` INSERT INTO SpørsmålSvar ( svarID , spørsmålID , chatgpt , svarTekst ) VALUES
( 1 , 1 , false , ' Røde prikker kan skyldes irritasjon , talgkjertler , kjønnsvorter , spicula glandis , andre utslett eller soppinfeksjon . Det er lurt å oppsøke fastlege for å finne ut av det . ' ) ,
( 2 , 2 , true , ' Svimmelhet ved oppreisning kan skyldes blodtrykksfall . Det kalles ortostatisk hypotensjon . Det er viktig å stå opp sakte , og hvis det vedvarer , kontakt lege . ' ) ,
( 3 , 3 , true , ' Voksne bør ha blodtrykkstest minst en gang hvert annet år . Ved høyt blodtrykk eller andre risikofaktorer , oftere . ' ) ,
( 4 , 4 , false , ' Vedvarende hoste kan være tegn på en rekke tilstander , noen mer alvorlige enn andre . Det er viktig å konsultere lege . ' ) ,
( 5 , 5 , true , ' Forebygging av hjertesykdom inkluderer et sunt kosthold , regelmessig fysisk aktivitet , ikke røyke og moderere alkoholinntaket . ' ) ,
( 6 , 6 , false , ' Influensasymptomer varer vanligvis fra noen dager til to uker . Hvis symptomene forverres eller ikke forbedres , kontakt lege . ' ) ,
( 7 , 7 , true , ' Trøtthet kan være en bivirkning av mange medisiner . Snakk med legen din om symptomene dine , spesielt hvis de er alvorlige . ' ) ,
( 8 , 8 , false , ' Diabetesdiagnose stilles gjennom blodsukkermålinger . Symptomer inkluderer tørste , hyppig vannlating , tretthet og tåkesyn . ' ) ,
( 9 , 9 , true , ' Voksne bør vurdere å få stivkrampe , difteri , kikhoste , influensa og pneumokokkvaksiner , blant andre . ' ) ,
2024-01-13 14:54:29 +01:00
( 10 , 10 , false , ' Ja , det er mulig å ha for høyt nivå av vitaminer , spesielt fra kosttilskudd . Det er viktig å følge anbefalte doser . ' ) ,
2024-01-13 14:50:21 +01:00
( 11 , 1 , true , ' Dette kan være en mild betennelse eller infeksjon . Unngå å irritere området , og hvis det ikke forbedres , ta kontakt med lege for en sjekk . ' ) ,
( 12 , 2 , false , ' Enkelte kan oppleve svimmelhet hvis de reiser seg for fort på grunn av blodtrykksendringer . Hvis dette skjer ofte , bør du diskutere det med fastlegen . ' ) ,
( 13 , 3 , false , ' Det anbefales at voksne får målt blodtrykket sitt minst hvert femte år . Hvis du har risikofaktorer for hjertesykdom , kanskje årlig . ' ) ,
( 14 , 4 , true , ' Langvarig hoste kan være tegn på kroniske tilstander som astma eller GERD . En lege kan hjelpe deg med å diagnostisere årsaken . ' ) ,
( 15 , 5 , false , ' Unngå tobakksrøyk , spis et kosthold rikt på frukt og grønnsaker , vær fysisk aktiv , og kontroller din kolesterol og blodtrykk . ' ) ,
( 16 , 6 , true , ' Influensasymptomer varer typisk i 1 - 2 uker . Hvis du opplever alvorlige symptomer eller de varer lenger enn to uker , søk medisinsk hjelp . ' ) ,
( 17 , 7 , false , ' Tretthet kan være en vanlig bivirkning av nye medisiner . Hvis det vedvarer , snakk med legen din for å se om doseringen trenger justering . ' ) ,
( 18 , 8 , true , ' Tegn på diabetes kan inkludere økt tørste og hyppig vannlating . Blodprøver kan bekrefte diagnosen . ' ) ,
( 19 , 9 , false , ' Det er viktig å holde seg oppdatert på vaksinasjoner . Ta en samtale med legen din om influensa , pneumokokk , og andre relevante vaksiner . ' ) ,
( 20 , 10 , true , ' For mye av visse vitaminer , som A , D , E og K , kan være skadelig . Disse er fettløselige og lagres i kroppen . Følg anbefalte doseringer . '
) ; ` ,
2023-12-21 20:59:52 +01:00
}
// Execute SQL statements
for _ , stmt := range createTableStatements {
_ , err := db . Exec ( stmt )
if err != nil {
log . Fatalf ( "Error creating table: %v\n" , err )
}
}
2024-01-13 14:50:21 +01:00
2023-12-21 20:59:52 +01:00
fmt . Println ( "Tables created successfully." )
}