En enkel database over utstyr og målinger ved HUS Helge Pettersen, Helse Bergen 04..203 Helge Pettersen
Introduksjon Spørsmål : Hvordan skal man holde oversikt over modaliteter? I fem-seks forskjellige Excel-ark Kondemnert i ett ark, på tide med QA i et annet «I den eposten fra januar» Medisinsk-Teknisk har full oversikt over Helse Bergen Spørsmål 2: Til QA-runden i fjor adopterte vi Excel-arkene til UNN De måler flere parametere enn oss Regnearkene fungerer best med kobling til database Beholde ark, forenkle ark eller utvide QA? 04..203 Helge Pettersen 2
Løsningen til UNN 04..203 Helge Pettersen Faksimile fra HMT 06.20 3
Løsningen til UNN «Selvgjort et velgjort» Vi ønsket et mer oversiktlig system Tilpasset våre målerutiner Rapporter som leveres til eksterne må lages manuelt Trenger mer eller mindre data? Informasjon om måleprotokoller? Fjorårets rapporter var kun et komprimert sammendrag av måledata Basert på UNNs løsning 04..203 Helge Pettersen 4
Målerapporter i fjor 04..203 Helge Pettersen 5
Langsiktig mål Et rapport-/databasesystem:. Full oppdatert oversikt over våre maskiner Også utenfor Helse Bergen 2. Excel-ark med akkurat de testene vi gjør 3. Overføring av måledata fra Excel til database 4. Automatisk rapport-generering fra database Tekst, bilder, måledata og trend 04..203 Helge Pettersen 6
Steg : Database over utstyr Måtte lære meg SQL (Mange ressurser på nettet!) Bruker MySQL Workbench for å lage database-struktur Kjører SQL-server lokalt på laptop Database 4. juni 203 (Laget i Word og Paint) 04..203 Helge Pettersen Database 20. september 203
Steg : Database over utstyr Inneholder informasjon om Modalitet Hver enkelt QA Spesifikke tester: DAP Rør-test AEC Bildekvalitet CT etterhvert 04..203 Helge Pettersen 8
Steg ½: Fylle databasen Python: Henter info fra alle DICOM-bilder i en mappe Legger hver unike modalitet inn i databasen Resten skriver jeg inn manuelt (i Python) Sykehus Fabrikant Modell Lab Alder År siden QA Førde sentralsjukehus Toshiba Aquilion Lab 5 CT 2,7 Førde sentralsjukehus Ziehm Vision Operasjonsavdelingen 0 0,5 Førde sentralsjukehus Toshiba Ultimax Lab 4 3 2,6 Førde sentralsjukehus Philips Bucky Diagnost Lab 2 5,3 Førde sentralsjukehus Philips Bucky Diagnost Lab 3 3,6 Førde sentralsjukehus Siemens Luminos Lab,3 Lærdal sjukehus Decotron Y-one Triathlon Lab 2 3,6 Lærdal sjukehus Decotron Opera Swing Lab 2,6 Lærdal sjukehus Siemens SOMATOM Definition AS Lab CT Nordfjord Sjukehus Siemens SOMATOM Definition AS Lab 2 CT 2 0,5 04..203 Helge Pettersen 9
Steg ½: Interessante DICOM-tags ID Navn (0008,0020) Dato for opptak (0008,0060) Modalitetstype (DR, CT, ) (0008,0070) Leverandør (0008,0080) Sykehus (0008,00) Stasjonsnavn (0008,040) Avdeling (0008,090) Modellnavn (008,020) Software-versjon Annen info (ikke DICOM) Romkode / lab Kontaktperson Internt reg. nr Mobil / stasjonær Leveringsdato Kasseringsdato (evt. NULL) Har vi ansvar for den? Har den DAP/AEK? Fikse feil i DICOM-data 04..203 Helge Pettersen 0
Steg 2: Tilpasset QA-ark Basert på arkene til UNN Forenklet og fordummet Mindre å måle Gjort små endringer: Annen protokoll for måling av AEC Essensen er likevel beholdt Resultatet Filstørrelse [kb] 5562 36 Original Redusert 04..203 Helge Pettersen
Steg 3: Overføre data fra Excel til SQL Tankemåte: Én ekstra fane i Excel-ark, som inneholder alle måleresultater i én kolonne Lite elegant løsning Python leser Excel-filen, og omformer dataene til SQL-format Enkel i bruk openpyxl og MySQLdb ftdxd_internalfiltration? ftdxd_rasterfactor 2 ftdxd_fka_cm 96 ftdxd_fda_cm 00 ftdxd_program_ Kontinuerlig ftdxd_pps_ 0 ftdxd_dosemode_ 0 ftdxd_fieldsize_cm_ 20 ftdxd_panel_kv_ 0 ftdxd_panel_ma_ 0 ftdxd_panel_ms_ 0 ftdxd_meas_mgy_s_ 0,60 ftdxd_corrected_mgy_s_ 0,28 cur.execute("insert INTO aek_calibration_each (aekce_ms, aekce_microgy) VALUES (%s, %s)", (aekt_cal["aektce_ms"][i], aekt_cal["aektce_microgy"][i])) 04..203 Helge Pettersen 2
Steg 3½: Enkelt å få ut måleresultater. Eksempel: DAP-nøyaktighet målt i 203 04..203 Helge Pettersen 3
Steg 4: Rapportgenerering Har funnet et Python-verktøy som danner PDF-dokumenter ReportLab. Åpner en angitt QA (basert på rapportnummer) 2. Introduksjonstekst 3. For hver mulige test: Er testen utført? Hvis ja: Introduksjonstekst med formål og krav, etterfulgt av måledata og resultat Hvis nei: Hopp over avsnitt 4. Avslutningstekst 5. Lagre PDF 04..203 Helge Pettersen 4
04..203 Helge Pettersen 5
I bruk Åpner en fil-dialog, resten skjer automatisk (800 linjer) Skriv inn rapportnavn, PDF-fil kommer ut (300 linjer) Automatisk, basert på DICOM og ekstra info i filen (2000 linjer) 04..203 Helge Pettersen 6
Work in progress... Har hele kjeden (og alle modaliteter) på plass, men Ikke alle tidligere målinger har blitt lagt inn ennå Ikke måling fra CT (kun røntgen og gjennomlysning) ennå Utvide med flere tester Rapportgenerator har bare AEC og DAP til nå Flytte databasen fra laptop til server? (Lokal) integrasjon med CTQA til Erlend Andersen? (som vi bruker flittig) Avhengig av å legge inn data riktig i Excel 04..203 Helge Pettersen 7
2mm Cu mm Cu Ekstraark: Måling av AEC Cu [mm] 2 AEK på bord Detektor Program Variasjonskoeffisient med tanke på µgy = a * ms + b Raster kvp tykkelse BORD FDA [cm] ma Stigningstalpunkt Kammer mm 2 mm Variasjon Skjærings- Målt dose Rasterfokus [cm] Fokus Innstilt tid Kommentar Størrelse Density 2 3 Kammer Dose [μgy] nr. Avlest tid Dose Gjennomsnitt Avvik Stdav Variasjonskoeff. Variasjonskoeffisient med tanke på tykkelse VEGG 2 Stigningstalpunkt Kammer mm 2 mm Variasjon Skjærings- Målt dose 2 Innstilt tid 3 3 2 3 3 3 2 2 AEK på vegg Detektor Raster FDA [cm] Rasterfokus [cm] Kommentar Program kvp ma Fokus Størrelse Density Cu [mm] 2 Kammer nr. 2 2 3 3 3 3 2 2 Dose [μgy] Avlest tid Dose Gjennomsnitt Avvik Stdav Variasjonskoeff. 04..203 Helge Pettersen 8