Database clinico relazioni tabelle e generazione automatica record tabelle relazionate

di il
8 risposte

Database clinico relazioni tabelle e generazione automatica record tabelle relazionate

Buongiorno sono nuovo del forum, mi presento mi chiamo Luca e faccio il tecnico sanitario, ho passione per la tecnologia ma poca dimestichezza con Access, per diletto mi sono messo a giocare con Access 2007, è ciò che ho a disposizione, per costruire un database clinico. Ho creato una tabella anagrafica pazienti che ha come chiave primaria un contatore che ho chiamato IDANAGRAFICA, dopodiché ho creato altre tabelle in cui inserire i vari parametri clinici di mio interesse in relazione con la tabella anagrafica uno a molti avendo inserito in ogni tabella il campo IDANAGRAFICA. Come faccio a generare automaticamente la chiave IDANAGRAFICA nelle tabelle in relazione con la tabella madre?
Ho provato con delle query di accodamento ma ogni volta che le eseguo mi accodano tutti i record
Se qualcuno mi può aiutare lo ringrazio anticipatamente
Grazie
Luca

8 Risposte

  • Re: Database clinico relazioni tabelle e generazione automatica record tabelle relazionate

    Luca, ci sono 2 cose da sapere prima di partire...!
    1° Normalizzazione o Teoria Relazionale dei Database, questo argomento non serve studiarlo come dovessi dare un esame universitario, ma è di indiscutibile importanza e non bypassabile tu ne conosca un po di Teoria di base, altrimenti farai molta fatica a capire ed a capirci, ma soprattutto rischierai di sbagliare la PROGETTAZIONE nel 90% dei casi.
    2° Devi conoscere lo strumento che stai utilizzando, mi riferisco ad ACCESS, perchè non puoi inventarti cose che non sono allineate con il prodotto.

    Mi spiego in modo concreto affinchè tu capisca.
    Per prima cosa, le tabelle che hai predisposto non andranno mai bene... di norma oltre alla Tabella Anagrafica, serve capire che ci saranno sicuramente dei Cataloghi di Esami/Diagnosi/Terapie/Medicinali... la faccio breve...!
    Per ogni Paziente(Anagrafica) potrai avere MOLTE Esami/Diagnosi/Terapie/Medicinali, ma è vero anche il contrario... un Esame potrà essere prescritto a MOLTE Anagrafiche.
    Da quì già dovresti comprendere che la semplice Relazione 1-Molti non è sufficiente, motivo per cui si ricorre alla 3° Regola di Normalizzazione(quelle che accennavo sopra) che definisce chiaramente come strutturare una tipologia di Relazione chiamata Molti a Molti.
    Ovviamente da quì poi gestirla non è complesso, ma per farlo serve conoscere lo strumento che ti consente di farlo.

    Con Access infatti devi considerare sempre come MEZZO di Interfaccia la MASCHERA, e già con l'autocomposizione ad esempio il problema di CHI e COME valorizzare le Chiavi non esiste in quanto il sistema in automatico, se ben impostato, lo fa da solo.

    Ora comprendi che le informazioni che ti ho esposto richiedono che tu quanto meno, abbia un minimo di familiarità con il mezzo altrimenti ti metti in difficoltà da solo chiedendo informazioni di BASE che puoi e devi metabolizzare con qualche Libro o Manuale tecnico avanzato.
    Da li poi il Forum è presente.
  • Re: Database clinico relazioni tabelle e generazione automatica record tabelle relazionate

    Buongiorno ho seguito il consiglio di Alex e mi sono andato a studiare un paio di manuali, resto però convinto che per le mie necessità non ci sia bisogno di creare un database con Relazioni molti a molti. Allego lo schema delle relazioni tra le tabelle.. ditemi se sbaglio o se questa impostazione è corretta: Io ho un paziente , che registro nella tabella anagrafica, per ogni paziente ho uno o più ricoveri che registro nella tabella ricoveri, ad ogni ricovero segue uno o più interventi che registro nella tabella CCH,per ogni intervento posso avere un intervento su mitrale che registro su tabella database mitrale.
    Per ogni tabella ho fatto una maschera di inserimento dati ma vorrei collegare le maschere in modo che passando da una all'altra si generi automaticamente il record collegato dalle relazioni, la stessa cosa che si fa quando si crea una maschera ed una sottomaschera da due tabelle in relazione.
    Attendo lumi
    grazie
  • Re: Database clinico relazioni tabelle e generazione automatica record tabelle relazionate

    Forse questo thread doveva essere postato nella sezione "Progettazione Database"...ma va bene anche qui.
    1) Sicuramente il campo DataRicovero non deve stare nella tabella Anagrafica, ma in Ricoveri. Il campo Età è superfluo in quanto hai già DataNascita (valore fisso), mentre Età cambia con il passare del tempo e non stai certo lì a cambiare l'età di tutti i Pazienti ogni anno che passa.
    2) Io mi fermerei alle sole prime 3 tabelle. La "tabella database mitrale" forse non serve e sicuramente quei campi ricordano alcuni che stanno in Anagrafica.
    3) CCH, se interpreto bene, quei campi sono quasi tutti di tipo Sì/No. Se è vero, io preferirei più elencare "verticalmente" solo i valori da riportare.
    4) Una volta aggiustate le prime 3 tabelle puoi mettere in moto la procedura guidata di creazione maschere: leggi la guida in linea.
  • Re: Database clinico relazioni tabelle e generazione automatica record tabelle relazionate

    Ho fatto le modifiche da te suggerite, il campo eta mi serve perché mi interssa l'età al momento dell'intervento e non l'aggiornamento continuo,la tabella mitrale contiene molti campi specifici e non posso eliminarla. Detto questo con la procedura guidata dincreazione maschere riesco a fare maschere e sootmaschere collegate ma vista la quantità di campi che compongono le tabelle è impensabile che stia no in una sola schermata, mi servono più maschere collegate tra di loro, ho provato con pulsanti di comando che aprano la maschera e filtrino i dati in base ai campi in relazione ma il problema è che non mi genera il nuovo record con la chiave in relazione. Ho visto su altre discussioni che bisognerebbe creare una routine evento che apra la nuova maschera e generi il nuovo record collegandolo con il record della tabella madre ma io non sono in grado di scrivere in visual basic, qualcuno ha qualche suggerimento?
  • Re: Database clinico relazioni tabelle e generazione automatica record tabelle relazionate

    Lunet69 ha scritto:


    il campo età mi serve perché mi interssa l'età al momento dell'intervento e non l'aggiornamento continuo
    L'età è un CALCOLO ricavabile dai dati PRIMORDIALI. Un dato "primordiale" è quello che solo l'utente può fornire al database. DataNascita è il dato primordiale. Per vedere ANCHE l'età in maschera (ma non in tabella, non ha senso, è sbagliato) puoi aggiungere una casella di testo con opportuna espressione di calcolo.

    Lunet69 ha scritto:


    la tabella mitrale contiene molti campi specifici e non posso eliminarla
    Ma ti sei accorto che contiene campi già esistenti in un'altra tabella? Questo, a livello di normalizzazione, non si deve fare.

    Se hai necessità di RICAVARE qualcosa che, per la tua professione, deve saltare evidente all'occhio, devi POI (in seconda battuta progettuale) predisporre appositi strumenti che ricreino quello che ti serve. Penso soprattutto alle query.

    Lunet69 ha scritto:


    Detto questo con la procedura guidata dincreazione maschere riesco a fare maschere e sootmaschere collegate ma vista la quantità di campi che compongono le tabelle è impensabile che stia no in una sola schermata, mi servono più maschere collegate tra di loro, ho provato con pulsanti di comando che aprano la maschera e filtrino i dati in base ai campi in relazione ma il problema è che non mi genera il nuovo record con la chiave in relazione.
    Per il tuo caso forse non va bene la visualizzazione maschera/sottomaschere "classica". Cancella le maschere che hai creato e ripeti la procedura guidata, scegliendo alla 2a schermata "Maschere collegate".
    Poi, se proprio devo dire la mia, non mi è mai piaciuto il codice che sincronizzerebbe le maschere. Prova a leggere questo documento per personalizzare la sincronizzazione maschere
  • Re: Database clinico relazioni tabelle e generazione automatica record tabelle relazionate

    Per rispondere in modo specifico servirebbe la specifica di funzionalità quindi che io possa aver dato un suggerimento non pienamente centrato devi concederlo... solo tu sei esperto nel tuo settore e, acquisendo un minimo di teoria, sei in grado di sviluppare la.struttura relazionale adeguata.
    Mi permetto tuttavia di osservare che la tabella CCH contiene "diagnosi"... passami il termine sicuramente errato ma questo è un forum di Access ed io di medicina non so nulla...
    Ho scritto Diagnosi al plurale per cercare di capire meglio se veramente non si possa immaginare possano essere "proprietà o opzioni" di ogni ricovero.
    Come la data ricovero non ha alcun senso sia nella tabella anagrafica... ma proprio nessuno... pensa solo a ricoveri multipli... che data metti..?
    A seguire i dati ponderali nella tabella ricovero... se sono dati legati al ricovero... sono letti all'ingresso..? E se uno esce 10kg in meno..?
    Sono solo spunti di riflessione...

    Insomma prima di avere certezze fossi in te proverei a fare qualche riflessione più avanzata ma tieni anche conto in tutto il ragionamento di come vorrai usare i dati... esempio ricerche... che non puoi fare su tutti i campi della tabella CCH e proprio per questo suggerisco di riflettere bene...

    Che poi non serva una relazione MOLTI-MOLTI posso solo dirti che per esperienza nessun database, con un gestione minimale di opzioni per selezione, è privo di questo tipo di relazione... ma sicuramente avrai modo di confermare la tua esperienza e professionalità sul tuo lavoro meglio di noi.
  • Re: Database clinico relazioni tabelle e generazione automatica record tabelle relazionate

    Innanzi tutto voglio scusarmi se vi è parso che non abbia tenuto conto dei vostri suggerimenti riguardo a normalizzazione e composizione delle tabelle, l'esempio di relazioni che ho allegato era solo una prova assemblando tabelle da database diversi e per questo avevano campi ripetuti e posizionati nella tabella sbagliata. Mi trovo nella situazione in cui attualmente nel dipartimento in cui lavoro si utilizzano 4 database diversi per la raccolta dati inerenti tutti lo stesso argomento, questo perchè ogni figura professionale si è creata il suo database specifico. Il mio obiettivo è quello di creare un database unico , ma con maschere dedicate ad ogni figura professionale con un layout facile da comprendere e comandi chiari, gli utilizzatori sono medici normalmente non appassionati di informatica, da qui la necessità di sincronizzare le maschere per facilitare il compito di ognuno.
    Ho fatto una prova con il codice che mi dato Osvaldo e sembra faccia propio al caso mio, appena ho tempo lo verificherò anche sulla bozza di database che ho al lavoro, vi farò sapere nei prossimi giorni, per ora grazie a tutti!!
  • Re: Database clinico relazioni tabelle e generazione automatica record tabelle relazionate

    Lunet69 ha scritto:


    Mi trovo nella situazione in cui attualmente nel dipartimento in cui lavoro si utilizzano 4 database diversi per la raccolta dati inerenti tutti lo stesso argomento, questo perchè ogni figura professionale si è creata il suo database specifico. Il mio obiettivo è quello di creare un database unico , ma con maschere dedicate ad ogni figura professionale con un layout facile da comprendere e comandi chiari, gli utilizzatori sono medici normalmente non appassionati di informatica, da qui la necessità di sincronizzare le maschere per facilitare il compito di ognuno.
    Questo problema andrebbe risolto nei minimi dettagli. Occorre, per così dire, mettere in atto una filosofia da "minimo comune multiplo" (mi si consenta questa definizione), in cui bisogna mettere in gioco le tabelle necessarie a tutti, ma visualizzare, per ognuno, solo quello che gli serve. Occorreranno probabilmente opportune query oppure una maschera "pannello" in cui ognuno sceglie "sè stesso" e ogni scelta conduce a un layout maschere personalizzato. Ma, ripeto, ho filosofeggiato, occorre entrare nei dettagli dell'analisi lavoro.
Devi accedere o registrarti per scrivere nel forum
8 risposte