Archivi autore: Pierfrancesco Ghedini

FHIR® $everything operator

FHIRIn HL7 FHIR ® is present a useful operator to retrieve all information related to Patients and Encounters.

In order to keep this example simple we will use the FHIR CLI (Command line interface) to build the resources and to interact with the FHIR server.

Use of $everything operator

The $everything operator is used to return all the information related to the resource on which this operation is invoked, Encounter and Patient. The response is a bundle of type “searchset”. At a minimum, the patient/encounter resource itself is returned, along with any other resources that the server has that are related to the patient/encounter, and that are available for the given user. The server also returns whatever resources are needed to support the records – e.g. linked practitioners, medications, locations, organizations etc

Two input parameters are:

  • start_date -> The date range relates to care dates, not record currency dates – e.g. all records relating to care provided in a certain date range. If no start date is provided, all records prior to the end date are in scope.
  • end_date -> The date range relates to care dates, not record currency dates – e.g. all records relating to care provided in a certain date range. If no end date is provided, all records subsequent to the start date are in scope.

Let’s see operator in action

Start FHIR CLI typing in a python interpreter…

from client import *
cli = init_client()

And now, execute the command…

# Basic invocation on a Patient instance
resp = everything(cli, "Patient/example")

If the resource instance “Patient/example” exists will be returned an out put like this:

POST Url:$everything
Output code: 200

Other possible invocations are:

# Invocation on all Patient resources
resp = everything(cli, "Patient")
# Basic invocation on an Encounter instance 
resp = everything(cli, "Encounter/example")
# Invocation on all Encounter resources
resp = everything(cli, "Encounter")

Pierfrancesco Ghedini

Licenza Creative Commons
Quest’opera è distribuita con Licenza Creative Commons Attribuzione 3.0 Italia.

FHIR® Document production from Resource Composition

FHIRAs FHIR documentation says “FHIR resources can be used to build documents that represent a composition: a set of coherent information that is a statement of healthcare information, particularly including clinical observations and services. A document is an immutable set of resources with a fixed presentation that is authored and/or attested by humans, organizations and devices. Documents built in this fashion may be exchanged between systems and also persisted in document storage and management systems, including systems such as IHE XDS. Applications claiming conformance to this framework claim to be conformant to FHIR documents”

The FHIR Document Operator produces a document from a given composition.

In order to keep this example simple we will use the FHIR CLI (Command line interface) to build the resources and to interact with the FHIR server.

Use of document operator

Start FHIR CLI typing in a python interpreter…

from client import *
cli = init_client()

Create a document from a Composition Resource…

resp = document(cli, "Composition/example")
# resp is a bundle to decode
bu = Bundle(resp.obj())
# Now loop over bundle entries
for ent in bu.entry:

Tying the “resp” variable you can see the executed command

GET Url:$document?persist=false
Output code: 200

if you want to make the document persistent, set “persist” attribute to True

resp = document(cli, "Composition/example", persist=True)

If you inspect the returned resp variable, you will see something like this

GET Url:$document?persist=true
Output code: 201

The document was produced and the output code is 201 (OK)


Pierfrancesco Ghedini

Licenza Creative Commons
Quest’opera è distribuita con Licenza Creative Commons Attribuzione 3.0 Italia.

FHIR® resource validation

FHIRIn HL7 FHIR ® is quite easy to validate – to check the syntactic correctness – a resource by means of a FHIR server.

In order to keep this example simple we will use the FHIR CLI (Command line interface) to build the resources and to interact with the FHIR server.

Validation of a resource in XML format

Start FHIR CLI typing in a python interpreter…

from client import *
cli = init_client()

Store the resource in a variable called “res”

res = '''<Patient xmlns="">
<id value="pat1"/>
<status value="generated"/>
<div xmlns="">

<p>Patient Donald DUCK @ Acme Healthcare, Inc. MR = 654321</p>

<use value="usual"/>
<system value=""/>
<code value="MR"/>
<system value="urn:oid:"/>
<value value="654321"/>
<active value="true"/>
<use value="official"/>
<family value="Donald"/>
<given value="Duck"/>
<gender value="male"/>

Now execute the FHIR validate operation

resp = validate(cli, resource="Patient", par=res, format_acc="xml")

See the response code in order to check the operation result


or simply type the variable name “resp” to display the output of the command


You will see something like this:

<?xml version="1.0" encoding="UTF-8"?><OperationOutcome xmlns=""><text><status value="generated"/><div xmlns=""><p><b>Operation Outcome for :Validate resource </b></p><p>All OK</p></div></text></OperationOutcome>
POST Url:$validate?async=false
Output code: 200

The operation “POST Url:$validate?async=false” was All OK
The resource is validated.

Validation of a resource in json format

In this example we will build a resource using the resource constructor (Patient()), but, if you prefer, you can store directly the json object in a variable and validate it in the previously seen way.

pa = Patient({"resourceType":"Patient", "id": "pat1", "name":[{"family":["Donald"],"given":["TestName"],"use":"official"}]})
# check the content of pa simply entering pa variable

and validate it.
Pay attention: to obtain the json representation from Patient resource stored in “pa” variable, use pa.json

resp = validate(cli, resource="Patient", par=pa.json, format_acc="json")

See the response code in order to check the operation result


Pierfrancesco Ghedini

Licenza Creative Commons
Quest’opera è distribuita con Licenza Creative Commons Attribuzione 3.0 Italia.

HL7® FHIR® CLI – Command Line Interface

FHIRAre you looking for an easy to use Command Line Interface to HL7 FHIR® – Fast Healthcare Interoperability Resources ( – ?

If you answered “YES”, take a look at this python project.

You are not required to be a programmer in order to experiment with FHIR or to test a FHIR server you are implementing.

Read the “README” file for a lot of examples and CLI usage.


Pierfrancesco Ghedini

Licenza Creative Commons
Quest’opera è distribuita con Licenza Creative Commons Attribuzione 3.0 Italia.

CAD e dintorni: Regole tecniche in materia di documenti informatici

Agenzia per l'Italia Digitale

Agenzia per l’Italia Digitale

Continua la serie di articoli volti ad approfondire gli aspetti del CAD di maggiore interesse per le aziende sanitarie. In questo  articolo si dà notizia del recente Decreto del Presidente del Consiglio dei Ministri che tratta di “Regole tecniche in materia di formazione, trasmissione, copia, duplicazione, riproduzione e validazione temporale dei documenti informatici nonché di formazione e conservazione dei documenti informatici delle pubbliche amministrazioni ai sensi degli articoli 20, 22, 23-bis, 23-ter, 40, comma 1, 41, e 71, comma 1, del Codice dell’amministrazione digitale di cui al decreto legislativo n. 82 del 2005.

Di cosa tratta il decreto?

Il decreto – art. 1 – fornisce una serie di definizioni – allegato 1 – e descrive alcuni formati di documenti utilizzabili – allegato 2 -. Nell’allegato 3 riporta una serie di standard tecnici per la  formazione, la gestione e la conservazione dei documenti informatici. Nell’allegato 4 e 5 riporta rispettivamente le specifiche tecniche del pacchetto di archiviazione e dei metadati.

Inoltre – art. 2 – il DPCM detta le regole tecniche per i documenti informatici, per i documenti amministrativi informatici e per il fascicolo informatico.

Quali le principali novità e gli aspetti salienti

Vale la pena di sottolineare una interessante novità riportata al comma 2 dell’art. 10 – Copie su supporto informatico di documenti amministrativi analogici – laddove si dice che “L’attestazione di conformita’ di cui al comma 1, anche nel caso di uno o piu’ documenti amministrativi informatici, effettuata per raffronto dei documenti o attraverso certificazione di processo nei casi in cui siano adottate tecniche in grado di garantire la corrispondenza del contenuto dell’originale e della copia, puo’ essere prodotta come documento informatico separato contenente un riferimento temporale e l’impronta di ogni copia. Il documento informatico prodotto e’ sottoscritto con firma digitale o con firma elettronica qualificata del funzionario delegato.”

Tale enunciate sembra aprire la strada ad una modalità di attestazione della conformità che si basa su una certificazione di processo piuttosto che su una verifica sistematica attuata documento analogico per documento analogico, con ovvie ricadute di migliore efficienza e gestibili del processo.

L’ art. 12 – Misure di sicurezza – afferma che “Il responsabile della gestione documentale ovvero, ove nominato, il coordinatore della gestione documentale predispone, in accordo con il responsabile della sicurezza e il responsabile del sistema di conservazione, il piano della sicurezza del sistema di gestione informatica dei documenti, nell’ambito del piano generale della sicurezza ed in coerenza con quanto previsto in materia dagli articoli 50-bis e 51 del Codice e dalle relative linee guida emanate dall’Agenzia per l’Italia digitale. Le suddette misure sono indicate nel manuale di gestione.”

Ribadendo in questo modo l’obbligatorietà delle misure di Business Continuity e Disaster Recovery dovute in base agli articoli 50-bis e 51 del CAD.  

All’ art. 14 – Formazione dei registri e repertori informatici – comma 2, si afferma che “Le pubbliche amministrazioni gestiscono registri particolari informatici, espressamente previsti da norme o regolamenti interni, generati dal concorso di piu’ aree organizzative omogenee con le modalita’ previste ed espressamente descritte nel   manuale   di gestione, individuando un’area organizzativa omogenea responsabile.”

Ciò sembra autorizzare le pubbliche amministrazioni a gestire registri informatici particolari che danno titolo a modellare flussi informatici che abbiano gestioni particolari rispetto all’ordinario flusso di protocollazione che caratterizza lo scambio di documenti al confine delle PA.

Tempi di attuazione ed adeguamento dei sistemi

All’art. 17 si precisa che “Il presente decreto entra in vigore decorsi trenta giorni dalla data della sua pubblicazione nella   Gazzetta   Ufficiale   della Repubblica italiana – NOTA BENE: il DPCM è stato pubblicato in GU il 12/01/2015 -. Le pubbliche amministrazioni adeguano i propri sistemi di gestione informatica dei documenti entro e non oltre diciotto mesi dall’entrata in vigore del presente decreto. Fino al completamento di tale processo possono essere applicate le previgenti regole tecniche. Decorso tale termine si applicano le presenti regole tecniche. Il presente decreto e’ inviato ai competenti organi di controllo e pubblicato nella Gazzetta Ufficiale della Repubblica italiana.”

NOTA BENE: quanto riportato nel presente articolo è un estratto da norme vigenti e non garantisce la completezza che solo il testo originale può garantire. Le considerazioni dell’autore devono essere considerate alla stregua di opinioni personali e quindi, prima di ogni possibile utilizzo, devono essere confrontate con altre fonti autorevoli e fede facenti. Verificare sempre i testi completi e originali delle norme citate ricorrendo alle fonti ufficiali tenendo conto di ogni possibile modifica o integrazione intervenuta successivamente alla redazione del presente articolo.


Il testo vigente del CAD è reperibile sul sito di AGID.

Licenza Creative Commons

Quest’opera è distribuita con Licenza Creative Commons Attribuzione 3.0 Italia.

La documentazione clinica nel ventunesimo secolo

Annals Of Internal Medicine

Annals Of Internal Medicine

La discussione sulla documentazione sanitaria e sulla sua corretta tenuta precede l’introduzione dell’EHR – Electronic Health Record – e di certo l’avvento delle nuove tecnologie invece che costituirne la fine, l’ha enfatizzata. Uno dei contributi più autorevoli e stimolanti in materia è comparso di recente su Annals of Internal Medicine con il titolo “Clinical Documentation in the 21st Century: Executive Summary of a Policy Position Paper From the American College of Physicians

L’American College of Physicians – ACP -, in questo lavoro, analizza con spirito critico il tema della documentazione sanitaria allo scopo di comprendere come essa possa meglio rispondere alle necessità dei pazienti e delle loro famiglie e per fare questo si interroga su quali siano le potenzialità, oltre che le principali problematiche, dei sistemi informativi sanitari – EHRs -.

La considerazione chiave da cui parte l’ACP è che la documentazione clinica ha come scopo principale quello di registrare le condizioni del paziente e le azioni e i pensieri del curante al fine di condividerle con gli altri attori del processo di cura. Nel tempo molti portatori di interesse hanno caricato la documentazione sanitaria di necessità diverse che poco hanno a che fare con il fine originario. L’ACP afferma anche che l’introduzione dei computer e dell’EHR non ha portato solo vantaggi, ma ha anche introdotto nuove complessità e nuove sfide.

Non solo: alcuni medici hanno evidenziato che taluni sistemi informatizzati sono inadeguati al fine della gestione della documentazione clinica.

Nel documento, l’ACP fornisce delle raccomandazioni per la progettazione dei futuri sistemi EHR:

  1. i sistemi EHR devono facilitare la gestione del paziente durante tutto l’arco della sua vita – longitudinal care delivery – supportando l’operato dei sanitari che spesso si trovano ad operare in team per percorsi di cura che coprono anche lunghi periodi;
  2. la documentazione gestita negli EHR deve supportare il processo cognitivo del sanitario durante la fase di redazione della documentazione;
  3. i sistemai EHR devono favorire l’atteggiamento “scrivi una volta, usa molte volte” – write once, reuse many times – e deve supportare l’uso di TAGS – identificativi – che permettano di registrare la fonte originale delle informazioni quando queste siano riutilizzate in fasi successive;
  4. per quanto possibile, non si deve richiedere l’inserimento della conferma di azioni effettuate  quando l’effettuazione di queste risulti chiaro dalla documentazione presente;
  5. i sistemi EHR devono favorire l’integrazione dei dati generati dal paziente mantenendo evidenziata la fonte del dato.

L’ACP pone l’accento su alcuni dei temi che saranno chiave per lo sviluppo dei sistemi informativi del prossimo triennio.

In particolare:

  • la necessità di rendere sempre evidente la fonte di una certa informazione presente nella documentazione clinica – ad esempio se una informazione è stata conferita direttamente dal paziente, piuttosto che raccolta in maniera automatica da un dispositivo medico o certificata da un medico attraverso un certificato o un referto, ecc… -; raccomandazioni 3 e 5;
  • la necessità di minimizzare le interazioni a basso contenuto informativo con il sistema al fine di aumentare l’usabilità complessiva dei sistemi informatici; raccomandazione 4;
  • la necessità di disporre di sistemi informativi di reale valore per il professionista sanitario e per il paziente, cioè in grado di supportare il processo di cura e di redazione della documentazione sanitaria; raccomandazioni 1 e 2.

Le raccomandazione dell’American College of Physicians dovranno essere prese in seria considerazione, se questo non avverrà, si correrà il rischio che i futuri sistemi EHR siano un ostacolo invece che un aiuto alla pratica sanitaria.


Licenza Creative Commons
Quest’opera è distribuita con Licenza Creative Commons Attribuzione 3.0 Italia.

Le APP mediche nella normativa statunitense ed europea

L’FDA – Food and Drug Administration – fornisce importanti indicazioni sullo sviluppo di APP Mobili in particolare quando queste abbiano anche la caratteristica di essere dispositivi medici.

È possibile trovare tutte le necessarie informazioni a questo indirizzo:

Una sintesi dei principali documenti in materia è rintracciabile anche a questo indirizzo: “Developing mobile apps as medical devices: Understanding U.S. government regulations

Una sintesi delle normative applicabili a livello europeo è rintracciabile al seguente indirizzo:

Guidance on medical device stand-alone software (including apps)

Licenza Creative Commons
Quest’opera è distribuita con Licenza Creative Commons Attribuzione 3.0 Italia.


Big Data in sanità?

BigData Image

BigData Image

Prendo spunto da questo interessante articolo apparso su per fare qualche considerazione sul tema dei BIG DATA – o Analytics – in Sanità.

Quello dei BIG Data è un tema assai di moda oggi e viene usato come sostanziale sinonimo del termine più tecnico “analytics”. Wikipedia dichiara che “Analytics is the discovery and communication of meaningful patterns in data”. Fra gli addetti ai lavori molto si discute, da un po’ di tempo a questa parte, su come i BIG DATA possano essere di aiuto in ambiti come la valutazione dell’efficacia delle cure, la ricerca epidemiologica o il contenimento dei costi attraverso l’analisi dell’efficienza del processo erogativo.

Effettivamente cominciano ad essere disponibili informazioni sull’utilizzo dei BIG DATA in sanità, ma siamo di fronte ad una vera rivoluzione o ad una semplice moda?

Se infatti ci fermiamo un attimo a pensare, ci accorgiamo che ciò che chiamiamo BIG DATA, altro non sono che le banche dati sanitarie classiche:

  • le SDO – schede di dimissione ospedaliera – che assieme agli accessi di PS non seguiti da ricovero che rappresentano la dimensione ospedaliera dell’assistenza;
  • l’ASA – la banca dati dell’erogato relativo alla specialistica ambulatoriale e alla diagnostica – che assieme ad altre banche dati accessorie come l’ADI – Assistenza Domiciliare Integrata – ci permette di indagare alcuni aspetti della dimensione territoriale dell’assistenza;
  • l’AFT – banca dati della Farmaceutica Territoriale – che permette di conoscere quali farmaci siano forniti attraverso il SSN ai pazienti;
  • ecc…

Se questi sono i BIG DATA della sanità, allora gli Analytics sanitari non sono poi una novità così stravolgente, stante che negli ultimi anni queste banche dati sono state esaminate in lungo e in largo probabilmente in tutti i modi possibili.

Tuttavia sarebbe semplicistico liquidare in questo modo l’intera questione. Mi sembra che vada colta la sollecitazione che viene dai colleghi stranieri che vedono nella nascita di nuove figure professionali dedicate alla analisi delle grandi banche dati sanitarie come il fattore chiave. Nell’articolo citato si sottolinea l’importanza della nascita di figure come il chief data officer e il chief analytics officer che possono contribuire alla valorizzazione delle informazioni annegate all’interno dei BIG DATA.

Io credo che ci sia della verità in tutto ciò: in fondo i dati non parlano se non a chi sa ascoltarli. Avere dei professionisti che siano in grado di scovare le preziose informazioni che sono annegate in montagne di dati senza valore e che siano in grado di evidenziarle in sintesi significative per le direzioni sanitarie e per i professionisti coinvolti nel processo erogativo è molto probabilmente la mossa vincente.

Speriamo che le direzioni aziendali e regionali investano in questa direzione, ciò che manca in questo momento non sono le informazioni, ma le persone che sanno leggerle.


Licenza Creative Commons
Quest’opera è distribuita con Licenza Creative Commons Attribuzione 3.0 Italia.

Give my health data back!



In a short time a huge part of our health datas will be scattered on the servers of many different companies around the internet. How are you going to have them back? How will you be able to consolidate them on one single EMR?

The lack of adequate standards and the lack of will to do so will prevent us to get them back.

We expect a hard work.



Licenza Creative Commons
Quest’opera è distribuita con Licenza Creative Commons Attribuzione 3.0 Italia.

Le 5 dimensioni dell’EMR

Dimensioni dell'EMR

Dimensioni dell’EMR

Ogni implementazione di un EMR – Electronic Medical Record – dovrebbe essere valutata secondo 5 principali dimensioni:


La prima dimensione è in relazione con il fatto che ogni EMR è di proprietà del paziente e deve essere di utilizzato a suo vantaggio. In particolare valutare questa dimensione comporta il riportare su una metrica il grado di utilità dell’EMR per il paziente. Occorre anche misurare il grado di gestibilità dell’EMR da parte del paziente stesso: ad esempio può essere valutata la facilità con la quale il paziente può oscurarne determinate parti al fine di tutelare la propria privacy o rendere disponibili parti dell’EMR a determinati professionisti sanitari e non ad altri.

La seconda dimensione è in relazione con il fatto che L’EMR è un fondamentale strumento di lavoro per il professionista sanitario che ha in cura il paziente. Il professionista ha il dovere di tenere costantemente aggiornato l’EMR per le parti di propria competenza, ma ha al contempo il diritto di consultare le informazioni rilevanti per la pratica professionale che non siano state oscurate dal paziente. Questa dimensione misura quindi il grado di utilità dell’EMR per il professionista.

Oltre che per il paziente e il professionista, l’EMR può essere prezioso per l’istituzione sanitaria che ha l’onere della valutazione dei servizi sanitari forniti alla popolazione. Gli EMR possono fornire informazioni aggregate, anonime e non per personali che permettono valutazioni di tipo epidemiologico, oltre che azioni di prevenzione e di governo della salute pubblica mediante la misura dei risultati – outcome – delle cure. La dimensione VALENZA SOCIALE misura l’utilità di una certa implementazione dal punto di vista dell’ISTITUZIONE SANITARIA.

I contenuti dell’EMR possono assumere diverse forme, ma saranno tanto più fruibili e gestibili informaticamente quanto più avranno una forma strutturata: ad esempio un referto di laboratorio analisi sarà assai più utile se riporterà in forma numerica i valori delle analisi contenute, piuttosto che la sola immagine – scannerizzazione o PDF – della copia cartacea. È, infatti, del tutto evidente che il valore del documento sarà tanto più elevato quanto più saranno le informazioni riportate gestibili informaticamente: di certo non sarò in grado di selezionare i referti che riportano un valore di glicemia anomalo se i referti sono sotto forma di copia scannerizzata. La DIMENSIONE SEMANTICA misurerà il grado di strutturazione dell’EMR e quindi la sua utilizzabilità con tecniche informatiche.

L’ultima ma non meno importante dimensione è quella tecnologica. Essa attiene al fatto che una certa implementazione dell’EMR risponderà più o meno brillantemente a domande del tipo:

  • è interoperante con i diversi sistemi tecnologici in uso in ambito sanitario e nella sfera personale?
  • è idonea all’uso in mobilità e su diversi tipi di dispositivi compresi i wearable e l’IOT?
  • è scalabile in ambiti diversi da quelli meramente personali ?
  • ecc…

Misurare le diverse implementazioni dell’EMR secondo queste caratteristiche e farlo secondo metriche che siano comuni e condivise sarà sicuramente la sfida più importante dell’immediato futuro.


Licenza Creative Commons
Quest’opera è distribuita con Licenza Creative Commons Attribuzione 3.0 Italia.