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:

  1. Entorn: Windows XP
  2. Contrassenya per accedir, seguretat de les dades (encriptació?)
  3. Dades: un sol tipus de fitxa (vegeu l'apartat sobre les dades).
  4. Recollida de dades: programa satèlit
    1. Un formulari d'introducció/modificació
      1. Si queda molt llarg, amb finestres del pal: Següent, Anterior i Finalitzar (guardar).
    2. Molt senzill, intuïtiu (molts dels camps són opcions tancades)
    3. Operacions (sobre les fitxes): fer una finestra emergent de gestió per fer-les?
      1. Nova
      2. Cargar
      3. Desar
      4. Eliminar: d'una en una o seleccionar varies.
        1. Demanar confirmació
    4. Transportable
      1. Petit (que pugui estar en un pen)
      2. Sense instal·lació
  5. Visualització i tractament de les dades: programa base
    1. Una taula (llistat) per visualitzar les dades
      1. Mostrar/amagar columnes
      2. Canviar ordre de columnes
      3. Ordenació
        1. 1a ordenació: clicant sobre el títol de la columna
        2. 2a ordenació: sempre per data excepte si la 1a ordenació és la data que llavors la 2a és el nom.
    2. Un formulari per visualitzar/modificar/afegir una fitxa
    3. Que es puguin aplicar filtres molt senzills (de manera molt senzilla)
    4. Que es puguin fer calculs estadístics (bàsics) sobre les dades
    5. Interfície també senzilla (sense masses opcions) però no tant com la recollida (l'utilitzarà només el Santi).
    6. Que es pugui buscar independentment de les majúscules
    7. Que es puguin importar les dades del satèlit: diàleg d'importació
      1. Les fitxes que siguin iguals: no fa res, no mostra aquestes fitxes
      2. Les que siguin noves: demana confirmació (mostrant informació breu de les fitxes o resum) i les afegeix
      3. 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
    8. Que es puguin exportar dades al satèlit
      1. Comprovar que no estigui la fitxa al satèlit (si està, avisa i ¿?)

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:

  1. Els tipus de dades són:
    • Bool -> booleà (si/no)
    • Integer -> enter
    • Float -> valor decimal (--,-)
    • String -> text lliure
  2. Quan un ítem està subratllat vol dir que forma part de la clau primària
  3. 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 (true).
  4. 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.