Visió general
Fitxes mèdiques és un petit programa de recollida de dades mèdiques d'operacions de cancer. Permet fer un tractament estadístic bàsic de les dades així com mostrar-les per pantalla i imprimir-les. Està programat en C++ i utilitza les llibreries Qt4, de manera que és multiplataforma (es pot utilitzar amb Linux, Windows o Mac) i programari lliure (vegeu la llicència?).
Requisits
De les converses amb el Santi (client, stakeholder) he anat desglosant els següents requisits:
- Entorn: Windows XP
- Contrassenya per accedir, seguretat de les dades (encriptació?)
- Dades: un sol tipus de fitxa (vegeu l'apartat sobre les dades).
- Recollida de dades: programa satèlit
- Un formulari d'introducció/modificació
- Si queda molt llarg, amb finestres del pal: Següent, Anterior i Finalitzar (guardar).
- Molt senzill, intuïtiu (molts dels camps són opcions tancades)
- Operacions (sobre les fitxes): fer una finestra emergent de gestió per fer-les?
- Nova
- Cargar
- Desar
- Eliminar: d'una en una o seleccionar varies.
- Demanar confirmació
- Transportable
- Petit (que pugui estar en un pen)
- Sense instal·lació
- Un formulari d'introducció/modificació
- Visualització i tractament de les dades: programa base
- Una taula (llistat) per visualitzar les dades
- Mostrar/amagar columnes
- Canviar ordre de columnes
- Ordenació
- 1a ordenació: clicant sobre el títol de la columna
- 2a ordenació: sempre per data excepte si la 1a ordenació és la data que llavors la 2a és el nom.
- Un formulari per visualitzar/modificar/afegir una fitxa
- Que es puguin aplicar filtres molt senzills (de manera molt senzilla)
- Que es puguin fer calculs estadístics (bàsics) sobre les dades
- Interfície també senzilla (sense masses opcions) però no tant com la recollida (l'utilitzarà només el Santi).
- Que es pugui buscar independentment de les majúscules
- Que es puguin importar les dades del satèlit: diàleg d'importació
- Les fitxes que siguin iguals: no fa res, no mostra aquestes fitxes
- Les que siguin noves: demana confirmació (mostrant informació breu de les fitxes o resum) i les afegeix
- Les que siguin modificació d'una existent pregunta entre:
- No fer res
- Passar a temporal (al mostrar la fitxa al programa apareixerà a sota la informació temporal)
- Actualitzar
- Que es puguin exportar dades al satèlit
- Comprovar que no estigui la fitxa al satèlit (si està, avisa i ¿?)
- Una taula (llistat) per visualitzar les dades
Les dades a recollir
Les dades són fitxes individuals, identificades per data d'intervenció i nº d'història de manera que per una mateixa història (pacient+problema) poden haver-hi varies intervencions (en dies diferents) i un mateix dia pot haver-hi diferents intervencions (de paciens diferents). No hi ha informació relacionada (és una sola taula) . Les dades que han de recollir cada fitxa són les següents:
- Data intervenció: Date
- Nº història: Integer
- Nom: String
- Edat: Integer
- Diagnòstic benigne: Bool
- Descripció benigne: String
- Localització: String
- Diagnòstic maligne: Bool
- Descripció maligne: String -> Opcions: { TNM, PRIMARI-TNM, text lliure }
- Interval lliure malaltia primaria (en mesos): Integer
- Recurrència malaltia: Bool
- Interval lliure (en mesos): Integer
- Ap definitiva confirma diagnòstic: Bool
- Descripció no confirmació: String
- Malaltia extraheptaica: Bool
- Descripció: String
- Quimio adjuvant tumor primari: Bool
- Quimio neoadjuvant: Bool
- Cea preop > 5: Bool
- Valor CEA: Integer
- CA19,9 PREOP > 30: Bool
- Valor CA19,9: Integer
- Cirrosi hepàtica: Bool
- (Si és no) CHILD: String -> Opcions
- Hepatitis B: Bool
- Hepatitis C: Bool
- Observacions diagnòstic: String
- Intervenció: String -> Opcions: { ¿?, text lliure }
- Radiofreqüència: Bool
- Nº nòduls: Integer
- Nº FRQs: Integer
- Alcoholització: Bool
- Nº nòduls: Integer
- Linfadenectomia: Bool
- Biopsia peroperatòria: Bool
- Tamany (IQ) (en mm): Float
- Nº nòduls (IQ): Integer
- Marge ressecció > 1 cm: Bool
- Infiltració vascular: Bool
- Infiltració perineural: Bool
- Ecografia intraoperatòria: Bool
- Confirmació diagnòstica ecogràfica: Bool
- (si és no) Descripció: String
- Cusa: Bool
- Argon: Bool
- Clampatge: Bool
- Temps de clampatge 1 (en min): Integer
- Temps de clampatge 2 (en min): Integer
- Temps de clampatge 3 (en min): Integer
- Temps de clampatge 4 (en min): Integer
- Temps de clampatge 5 (en min): Integer
- Transfusió (he) operatòria: Bool
- Nº transfusions (en bosses): Integer
- Transfusió (he) postoperatòria: Bool
- Nº transfusions (en bosses): Integer
- Transfusió plasma: Bool
- Nº plasma (en bosses): Integer
- Transfusió altres: String
- Complicacions operatòries: Bool
- Descripció: String
- Complicacions postoperatòries: Bool
- Descripció: String
- Reintervencions: Bool
- Descripció i complicacions: String
- Observacions intervenció: String
- Dies estància UCI: Integer
- Dies estància hospitalària: Integer
- Cirurgià: String -> Opcions { ¿?, text lliure }
- 1r ajudant: String -> Opcions { ¿?, text lliure }
- 2n ajudant: String -> Opcions { ¿?, text lliure }
- 3r ajudant: String -> Opcions { ¿?, text lliure }
Notes sobre la terminologia emprada:
- Els tipus de dades són:
- Bool -> booleà (si/no)
- Integer -> enter
- Float -> valor decimal (--,-)
- String -> text lliure
- Quan un ítem està subratllat vol dir que forma part de la clau primària
- Quan un ítem està anidat dins d'un altre és que tindrà valor (a la interfície s'activarà) quan, si no s'especifica el contrari, l'ítem pare tingui valor de sí (true).
- Quan apareix String -> Opcions {...} vol dir que la dada es guardarà com un text però a la interfície es mostraran opcions (una llista desplegable). Dins dels corxets apareixen les diferents opcions que se li donaran a l'usuari, i si posa text lliure vol dir que una opció serà que l'usuari escrigui el que vulgui.
