Sanità e ricerca clinicaBI, AI e ML per l'azienda
Parametri vitali: dal rumore all'episodio
I monitor del reparto registrano saturazione, battito e respiro ogni pochi secondi, insieme a molti allarmi che non sono episodi veri. In Muvia una funzione Python toglie il rumore letto per letto, l'Analisi sovrappone le desaturazioni vere e il personale annota sul grafico cosa è successo.
Scenario illustrativo: descrive un caso tipo, non il progetto di un cliente.
Un monitor che suona troppo spesso smette di essere ascoltato.
Un sensore che si sposta, un paziente che si gira, un dito freddo: molti allarmi di saturazione non sono desaturazioni vere. Il personale lo sa, ma rivedere a posteriori le notti di un reparto, letto per letto, sui dati grezzi è quasi impossibile.
Ripulire i segnali in modo dichiarato e sempre uguale, e mettere gli episodi veri uno sopra l'altro, permette di capire quante cadute sono reali, quando accadono e cosa cambia dopo un intervento. Muvia non sostituisce il monitor né i suoi allarmi: lavora sui dati esportati, per la revisione.
- Per chi
- Coordinatori infermieristici e direttori di reparto, rischio clinico, ingegneria clinica e ricercatori.
In Muvia, passo per passo
Schermate vere del prodotto, registrate su un progetto con dati di esempio.
Il video · I monitor del reparto registrano saturazione, battito e respiro ogni pochi secondi, insieme a molti allarmi che non sono episodi veri. In Muvia una funzione Python toglie il rumore letto per letto, l'Analisi sovrappone le desaturazioni vere e il personale annota sul grafico cosa è successo.
Cosa ottieni
- Episodi veri, non rumore
- Le cadute dovute al sensore restano fuori; quelle che rimangono si possono contare e confrontare.
- Ogni episodio accanto agli altri
- Le desaturazioni sovrapposte mostrano quanto durano e quanto scendono, letto per letto e notte per notte.
- Le note del reparto restano
- Ciò che il personale ha osservato è scritto sul grafico, all'ora giusta, e si ritrova nella revisione.
- Un filtro dichiarato
- Come vengono puliti i segnali è scritto nella funzione: cambiarlo è una nuova versione, provata prima in un'esecuzione che non scrive nulla.
Per il team tecnico
Come si costruisce in Muvia
- 1
Porta in Muvia i segnali dei monitor
Le esportazioni della centrale di monitoraggio arrivano come file via SFTP e si aggiungono alla tabella dei segnali; letti e degenze sono copiati su programma. Una query li unisce letto per letto.
- 2
Togli il rumore in Python
Una funzione applica una mediana mobile e un filtro a fase zero di scipy a ogni segnale, letto per letto, e scrive i segnali puliti in una tabella gestita. Un flusso la esegue su programma.
- 3
Trova le desaturazioni vere
In Analisi una condizione individua le cadute sotto il 90 % che durano abbastanza da essere reali; la vista Strati le sovrappone sull'istante d'inizio e la distribuzione mostra quanto durano.
- 4
Annota sul grafico
Il personale segna sul grafico cosa è successo, per esempio l'inizio di una ventilazione: le note restano accanto ai dati, all'ora giusta.
- 5
Scrivi la revisione del reparto
Un notebook con testo, numeri e grafici riassume le notti della settimana e diventa un PDF per la riunione di reparto.
Funzione Python
import pandas as pd
from scipy.signal import butter, filtfilt, medfilt
SEGNALI = ["spo2", "battito", "respiro"]
def transform(inputs, params, ctx):
df = inputs["rows"].sort_values(["letto", "istante"])
b, a = butter(2, params["taglio"], btype="low")
puliti = []
for _, g in df.groupby("letto"):
g = g.copy()
for col in SEGNALI:
x = medfilt(g[col].interpolate().bfill().to_numpy(), kernel_size=5)
g[col + "_pulito"] = filtfilt(b, a, x) if len(x) > 12 else x
puliti.append(g)
out = pd.concat(puliti)
out["sotto_soglia"] = out["spo2_pulito"] < params["soglia_spo2"]
ctx.logger.info("letti elaborati: %d", out["letto"].nunique())
return {"rows": out}- I dati che servono
- Saturazione, frequenza cardiaca e respiratoria per letto, un campione ogni pochi secondi, esportati dalla centrale di monitoraggio via SFTP
- Letti e degenze, da un database Oracle
- Soglie del reparto e presidi in uso per letto, da un file Excel
- Le parti di Muvia usate
Altri casi della stessa linea
Tutti i casi d'uso- Pronto soccorso: arrivi, attese e posti lettoOgni arrivo in pronto soccorso lascia un orario, un codice di priorità e un'attesa, e i reparti sanno quanti letti hanno liberi. Muvia mette tutto insieme ora per ora: l'ondata si vede arrivare, si sa quando arriva la gente, e lo schermo del reparto si aggiorna da solo.
- Studio clinico: l'analisi intermediaVisite, misure ed eventi avversi di uno studio arrivano dal sistema di raccolta dati, la lista di randomizzazione da un file. Muvia li unisce paziente per paziente, una funzione Python rifà il confronto statistico a ogni visita e il rapporto intermedio per il comitato è sempre aggiornato.
- Programmi di screening per distrettoInviti, adesioni ed esami di uno screening stanno nel sistema degli inviti, nei referti del laboratorio e nelle agende degli ambulatori. Muvia li unisce distretto per distretto: chi aderisce meno, dove si aspetta di più l'esame, e Athena che spiega perché e salva l'analisi.
Portaci una domanda a cui oggi non sai rispondere.
Partiamo da una domanda vera della tua azienda e ti mostriamo il percorso dalla fonte al cruscotto, con i tuoi sistemi e non con quelli di una demo.