Innholdsfortegnelse
Erik Fosse: Avdelingsleder. Opphavsmann til prosjektidé.
Ilangko Balasingham: Professor ved NTNU. Prosjektleder.
Karl Øyri: Oversykepleier. Karl skal skrive en artikkel om den kliniske delen av prosjektet i forbindelse med sin doktorgrad.
Elena Ivanova: Masterstudent ved IDI, NTNU 2005/2006. Skrev masteroppgave om prosjektet, og denne ligger til grunn for det meste av arbeidet som er gjort senere. Skrev prototypeimplementasjonen.
Ola Vikholt: Sivilarbeider 2005/2006. Videreutviklet prototypen. Arbeidet med innhenting av tillatelse fra pasienter, forbedring av oppslagsalgoritmer og integrering mot DocuLive.
Vegard Nossum: Sivilarbeider 2006/2007. Utvikling av en arkitektur som passert bedre for praktisk bruk.
Et prototype av programvaren i prosjektet ble utviklet av Elena Ivanova (og senere også Ola Vikholt). Dette programmet ble skrevet i PHP og var derfor en web-applikasjon. Med dette programmet kunne man lese journaler som ble lagt inn på forhånd, og både lese forklaringer på ord som ble gjenkjent og legge til nye definisjoner på ord som ikke ble gjenkjent.
Prototypen ble installert på en av IVS' maskiner. Brukernavn og passord til denne maskinen er root
og e60breh
. Programfilene finnes i /var/www/masterwww4
, og dataene er lagret i flere databaser, nel
, masterwww
og minjournal
. Brukernavn og passord for disse er root
og bjarne
.
Brukernavn og passord for å logge inn i programmet er admin
og e60breh
.
Fordi dette var et program utviklet i forbindelse med en masteroppgave, ble det ikke lagt stor vekt på integrasjon med sykehusets EPJ, skalerbarhet eller sikkerhet. Derfor begynte vi å utvikle en ny arkitektur som tok hensyn til disse tingene og samtidig være mer fleksibel.
De journalene som ligger i programmet er hentet ut av Datacor, EPJ-systemet som før ble brukt på Torakskirurgisk avdeling, og som delvis blir brukt på Intervensjonssenteret i dag. Journalene ble hentet ut av dette systemet manuelt ved å skrive ut journalnotater til en virtuell printer og så trekke ut selve journalteksten av dette dokumentet.
DocuLive er pasientjournalsystemet som Rikshospitalet bruker i dag, og er utviklet av Siemens. Systemet er basert på papirjournalen, dvs. at det finnes hundrevis av forskjellige dokumenttyper som hver inneholder flere felter. Dokumenttypene er kategorisert ut ifra en formalisert standard.
DocuLive lagrer pasientinformasjon og inneholder en adgangskontroll som gjør at kun helsepersonell som har med pasienten å gjøre, kan lese en pasients journal.
DocuLive består av to deler, en server og en klient. Sykehuset drifter serveren(e) sentralt, og klientene brukes av klinisk personell. DocuLive bruker MS SQL Server for å lagre informasjonen i systemet. Denne databasen er lukket og kan bare leses/skrives gjennom DocuLive. Det er imidlertid mulig å lage eksterne klienter som kommuniserer med DocuLive server over .NET WebServices (SOAP over HTTP).
Dokumentasjonen av DocuLive.NET WebServices finnes på http://www.doculive.net/WebServices.aspx
Ola Vikholt og Vegard Nossum har vært i kontakt med Bjørnar S. Haugland som jobber på IT-avdelingen, for å få en lokal installasjon av siste versjon av DocuLive server og klient med Microsoft SQL Server og DocuLive WebServices .NET som kan brukes til å eksperimentere med WebServices. Dette er fullt mulig, men foreløpig finnes det ikke noe sted å plassere denne maskinen, som må være en RH-klient koblet til RH-nettet.
NEL er en medisinsk ordbok som inneholder forklaringer på medisinske termer. NEL finnes i papirutgave og nettutgave. NEL har derimot ingen stavekontroll, og kan ikke gjøre oppslag på flere ord i en tekst.
Intervensjonssenteret har tillatelse til å bruke NEL i dette prosjektet.
Felleskatalogen er et register over alle preparater som selges i Norge. Dette registeret inneholder pakningsvedleggene til disse preparatene. Ved å hente ut navn på og en kort beskrivelse av hvert preparat, kan vi forklare også disse ordene dersom de forekommer i journalen, og samtidig gi pasienten direkte tilgang på pakningsvedlegget til dette preparatet.
Intervensjonssenteret har tillatelse til å bruke Felleskatalogen i dette prosjektet.
“Felleskatalogen nedlastbar web” kan lastes ned fra http://www.felleskatalogen.no/tjenester med brukernavn fk-web
og passord fk-web
. Vår kontaktperson hos Felleskatalogen er Ole-Kristian Setnes <OleK.Setnes@lmi.no>
.
Intervensjonssenteret vil gjerne gjøre en klinisk studie som viser om systemet gir pasienten en bedre erfaring ved opphold på sykehuset og ved lesing av journalen. Det er allerede søkt regional-etisk komité, og tillatelse til å gjøre studien er gitt. Intervensjonssenteret har også bedt omkring 300 (?) toraks-pasienter om tillatelse til å bruke deres journal i prosjektet. Disse svarene kan finnes i tre permer markert “MinJournal 2006 - Svar fra pasienter ang. bruk av journal”.
For å opprette en ny MySQL-database, følg instruksjonene i MySQL-instruksjonsmanualen (http://dev.mysql.com/doc/).
Det
lønner seg å ha en konfigurasjonsfil for MySQL-klienter i
hjemmekatalogen. Dette gjør det mye enklere å bruke databasen fordi en
slipper å skrive inn brukernavn og passord hver gang en kobler til. Lag
en fil ~/.my.cnf
og sett inn følgende:
# For the command-line client [client] user=root password= database=minjournal2 # For the thesaurus application [minjournal] user=root password= database=minjournal2
Databaseformatet er lagret som et MySQL-skript i data/tables.mysql
. Dette kan kjøres ved å gå til katalogen data
og skrive mysql minjournal2 < tables.mysql
. Dette vil slette alle data som finnes i databasen minjournal2
.
For å importere data fra prototypeimplementasjonen, gå til katalogen data
og kjør perl import-database2.pl
.
Det vil muligens være nødvendig å endre tilkoblingsparametere
(brukernavn og passord) for databasen(e) hvis disse har blitt endret.
Dette vil importere data både fra NEL-databasen og de ordene som har
blitt definert ved Intervensjonssenteret. Ordlisten med definisjoner
fra NEL vil lagres med id 1
, og ordlisten med definisjoner fra IVS vil lagres med id 2
.
Før programmene kan bygges, må libxml2 (se http://www.xmlsoft.org/) være installert. Om denne installeres gjennom distribusjonens pakkesystem, må -devel-pakken også installeres.
Gå til prosjektets rotkatalog. Kjør ./autogen.sh
. Kjør ./configure
. Kjør make
. Se også filen INSTALL
i rotkatalogen.
For å starte oversettelsesserveren, kjør thesaurus/thesaurus
. Programmet vil nå lytte etter forespørsler.
I client
-katalogen
finnes en eksempelklient som leser 1 dokument i format som avtalt med
Siemens, og skriver 1 dokument i HTML-format for visning i nettleser.
Dette programmet kan kjøres som CGI-skript (gjennom webserver) eller
som et frittstående program (fra kommandolinjen). Inndata leses fra stdin
og utdata skrives til stdout
. For å oversette et eksempeldokument, kjør client/view < client/doculive-request.txt > client/doculive-request.out.html
. Deretter kan html-filen åpnes i en nettleser.
For å bygge HTML- og LaTex-versjoner av dokumentasjonen som finnes i kildekoden, kjør doxygen
. Filer vil bli generert i documentation
-katalogen.
Denne
protokollen brukes av klientene og serveren for å kommunisere til
serveren hvilke ord som skal slås opp. Protokollen består i å utveksle
en forespørsel (fra klient til server) og svar (fra server til klient).
Forespørsel og svar er XML-dokumenter som følger oppbygningen som
beskrevet i protocol/request.xsd
og protocol/response.xsd
. Denne protokollen bruker TCP/IP som transport-lag, og kommunikasjonen foregår på port 49152.
For å gjøre det lett å installere prototypen på andre maskiner, har vi valgt å lage øyeblikksbilder av filsystemet til den originale maskinen. Disse øyeblikksbildene er kun lesbare, men mange programmer (inkludert MySQL og PHP) må ha skrivetilgang til noen av filene. Derfor må bildene monteres og så kopieres til et område som også kan skrives til. Nedenfor vises framgangsmåten for kopiere bildene til en midlertidig mappe (tmpfs) i RAM. Det vil det også være mulig å gjøre dette med unionfs, da også mer effektivt.
Når prototypen er installert, kan den gjøes tilgjengelig ved å gå inn på http://localhost/.
Dette øyeblikksbildet ble laget under MySQL versjon 5.0.32. Senere versjoner er kanskje ikke bakoverkompatible med dette formatet!
Stopp MySQL.
/etc/init.d/mysql stop
Lag en midlertidig katalog der øyeblikksbildet kan monteres.
mkdir -p mnt/var-lib-mysql
Monter øyeblikksbildet.
mount -o loop -t squashfs var-lib-mysql.squashfs mnt/var-lib-mysql
Monter en midlertidig katalog over gjeldende /var/lib/mysql
.
mount -t tmpfs tmpfs /var/lib/mysql
Kopier øyeblikksbildefilene til den midlertidige katalogen.
cp -a mnt/var-lib-mysql/* /var/lib/mysql/
Avmonter øyeblikksbildet.
umount mnt/var-lib-mysql
Bytt
eier- og gruppenummer på databasefilene. Dette steget er nødvendig
fordi forskjellige systemer kan ha forskjellige brukernummer for samme
brukernavn, i dette tilfellet mysql
.
chown -R mysql:mysql /var/lib/mysql/
Start MySQL.
/etc/init.d/mysql start
For å avmontere øyeblikksbildet, kjør umount /var/lib/mysql
. Husk å stoppe MySQL før du gjør dette!
Stopp Apache HTTPd.
/etc/init.d/httpd stop
Lag en midlertidig katalog der øyeblikksbildet kan monteres.
mkdir -p mnt/var-www
Monter øyeblikksbildet.
mount -o loop -t squashfs var-www.squashfs mnt/var-www
Monter en midlertidig katalog over gjeldende /var/www
.
mount -t tmpfs tmpfs /var/www
Kopier øyeblikksbildefilene til den midlertidige katalogen.
cp -a mnt/var-www/* /var/www/
Avmonter øyeblikksbildet.
umount mnt/var-www
Start Apache HTTPd.
/etc/init.d/httpd start
For å avmontere øyeblikksbildet, kjør umount /var/www
.
Husk å endre DocumentRoot
i /etc/httpd/httpd.conf
til /var/www/masterwww_4
!
EPJ-systemet som brukes ved Rikshospitalet.
Elektronisk pasientjournal.
Electronic patient record.
Se EPJ.
Intervensjonssenteret.
Pasientrettet/-orientert.
Norsk Elektronisk Legehåndbok.
Rikhospitalet.
Et kun-les filsystem med komprimering.
Et filsystem som slår sammen to filsystemer, f.eks. ett kun-les-filsystem og ett les-skriv-filsystem.
Et filsystem eller mappe fryst i tid.