
Cosa significa il simbolo ?! (isModifier)
Questo è un punto cruciale delle regole di conformità di FHIR.
Il simbolo ?! (punto interrogativo esclamativo) identifica un elemento come “isModifier” (è un modificatore).

In termini semplici, questo simbolo significa:
ATTENZIONE: NON PUOI IGNORARE QUESTO ELEMENTO.
Il suo valore, se presente, cambia fondamentalmente il significato dell’intera risorsa.
Cosa significa in pratica?
Se stai costruendo un’applicazione che riceve dati FHIR e incontri un elemento marcato con ?!:
- Obbligo di comprensione: La tua applicazione deve essere in grado di riconoscere e interpretare il valore di quell’elemento.
- Rischio di sicurezza: Ignorare un elemento “modifier” è pericoloso e può portare a gravi errori clinici.
- Integrità dei dati: Un sistema non può semplicemente ricevere la risorsa, salvare i campi che conosce e ignorare il campo
?!che non conosce. Se ignora un elemento “modifier”, sta di fatto interpretando male l’intera risorsa.
Esempi classici
Gli esempi più comuni chiariscono immediatamente il concetto:
AllergyIntolerance.verificationStatus: Questo campo (marcato?!) indica lo stato di verifica di un’allergia. Se il suo valore è"entered-in-error"(inserito per errore), significa che il paziente NON ha quell’allergia. Se la tua applicazione ignora questo campo, potrebbe erroneamente credere che il paziente sia allergico a qualcosa, con conseguenze potenzialmente fatali.status: Quasi ogni risorsa ha un campostatus(comeObservation.statusoMedicationRequest.status) ed è quasi sempre un “modifier”. Se lostatusè"preliminary"(preliminare),"final","cancelled"(annullato) o"entered-in-error", il significato clinico dell’intera osservazione o prescrizione cambia drasticamente.Patient.deceased[x]: Se questo elemento è presente e impostato sutrue, indica che il paziente è deceduto. Ignorare questo campo porterebbe a trattare un paziente deceduto come se fosse vivo.
In sintesi, il simbolo ?! è il modo in cui lo standard FHIR segnala i “campi trappola” che non possono essere ignorati in sicurezza.
English version
What’s the meaning of ?! in FHIR resources?
This is a crucial point of the FHIR conformance rules.
The ?! (question mark exclamation point) symbol identifies an element as “isModifier”.
In simple terms, this symbol means:
WARNING: YOU CANNOT IGNORE THIS ELEMENT.
Its value, if present, fundamentally changes the meaning of the entire resource.
What does this mean in practice?
If you are building an application that receives FHIR data and you encounter an element marked with ?!:
- Obligation to Understand: Your application must be able to recognize and interpret the value of that element.
- Safety Risk: Ignoring a “modifier” element is dangerous and can lead to serious clinical errors.
- Data Integrity: A system cannot simply receive the resource, save the fields it knows, and ignore the
?!field it doesn’t. If it ignores a “modifier” element, it is fundamentally misinterpreting the entire resource.
Classic Examples
The most common examples make the concept immediately clear:
AllergyIntolerance.verificationStatus: This field (marked?!) indicates the verification status of an allergy. If its value is"entered-in-error", it means the patient DOES NOT have that allergy. If your application ignores this field, it might mistakenly believe the patient has an allergy, with potentially fatal consequences.status: Almost every resource has astatusfield (likeObservation.statusorMedicationRequest.status), and it is almost always a “modifier”. If thestatusis"preliminary","final","cancelled", or"entered-in-error", the clinical meaning of the entire observation or prescription changes drastically.
In summary, the ?! symbol is the FHIR standard’s way of flagging “trap fields” that cannot be safely ignored.


