Tiro.health Implementation Guide
0.1.0 - ci-build
Tiro.health Implementation Guide - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
Atticus uses FHIR Provenance resources to track the origin and lifecycle of data entered into forms. This enables full auditability and transparency about how each data field was populated, whether by manual user input, AI algorithms, calculations, or data imports.
http://fhir.tiro.health/CodeSystem/form-activity) - Activities specific to form field populationhttp://terminology.hl7.org/CodeSystem/iso-21089-lifecycle) - Standard lifecycle eventshttp://hl7.org/fhir/StructureDefinition/targetElement) - Links provenance to specific response items| Code | Display | Description |
|---|---|---|
user |
User input | Manually entered data by the user |
manual |
Manual input | Manually entered data without system assistance |
| Code | Display | Description |
|---|---|---|
static |
Static value | Preconfigured value picked by a user |
preset |
Preset | Populated by a preset configuration |
initial-value |
Initial value | Populated by an initial value definition |
| Code | Display | Description |
|---|---|---|
calculation |
Calculation | A calculation has been performed based on an expression |
fhirpath |
FHIRPath calculation | A calculation performed using FHIRPath expression |
| Code | Display | Description |
|---|---|---|
ai |
AI population | An AI algorithm has generated field values |
speech-population |
Speech-based population | Speech-to-text solution generated the values |
ai-clipboard |
AI Clipboard | AI engine processed clipboard content |
| Code | Display | Description |
|---|---|---|
data-import |
Data Import | Values imported from other resources or external servers |
| Code | Display | Description |
|---|---|---|
submit |
Submit | Form submitted for review or final processing |
amend |
Amend | Form amended or updated after initial submission |
Atticus uses standard ISO 21089 lifecycle events in combination with form-specific activities:
When a form field is populated, a Provenance resource is created with:
targetElement extension pointing to the specific item.id{
"resourceType" : "Provenance",
"id" : "prov-001",
"meta" : {
"profile" : [
🔗 "http://fhir.tiro.health/StructureDefinition/form-provenance"
]
},
"text" : {
"status" : "generated",
"div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p class=\"res-header-id\"><b>Generated Narrative: Provenance prov-001</b></p><a name=\"prov-001\"> </a><a name=\"hcprov-001\"> </a><div style=\"display: inline-block; background-color: #d9e0e7; padding: 6px; margin: 4px; border: 1px solid #8da1b4; border-radius: 5px; line-height: 60%\"><p style=\"margin-bottom: 0px\"/><p style=\"margin-bottom: 0px\">Profile: <a href=\"StructureDefinition-form-provenance.html\">Form Provenance</a></p></div><p>Provenance for <a href=\"QuestionnaireResponse/qr-123\">QuestionnaireResponse/qr-123</a></p><p>Summary</p><table class=\"grid\"><tr><td>Recorded</td><td>2025-10-29 10:30:00+0000</td></tr><tr><td>Activity</td><td><span title=\"Codes:{http://fhir.tiro.health/CodeSystem/form-activity user}, {http://terminology.hl7.org/CodeSystem/iso-21089-lifecycle originate}\">Manually entered data by the user</span></td></tr></table><p><b>Agents</b></p><table class=\"grid\"><tr><td><b>who</b></td></tr><tr><td><a href=\"Practitioner/pract-789\">Practitioner/pract-789</a></td></tr></table></div>"
},
"target" : [
{
"extension" : [
{
"url" : "http://hl7.org/fhir/StructureDefinition/targetElement",
"valueUri" : "item-456"
}
],
"reference" : "QuestionnaireResponse/qr-123"
}
],
"recorded" : "2025-10-29T10:30:00Z",
"activity" : {
"coding" : [
{
"system" : "http://fhir.tiro.health/CodeSystem/form-activity",
"code" : "user",
"display" : "User input"
},
{
"system" : "http://terminology.hl7.org/CodeSystem/iso-21089-lifecycle",
"code" : "originate",
"display" : "Originate/Retain Record Lifecycle Event"
}
],
"text" : "Manually entered data by the user"
},
"agent" : [
{
"who" : {
"reference" : "Practitioner/pract-789"
}
}
]
}
{
"resourceType" : "Provenance",
"id" : "prov-002",
"meta" : {
"profile" : [
🔗 "http://fhir.tiro.health/StructureDefinition/form-provenance"
]
},
"text" : {
"status" : "generated",
"div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p class=\"res-header-id\"><b>Generated Narrative: Provenance prov-002</b></p><a name=\"prov-002\"> </a><a name=\"hcprov-002\"> </a><div style=\"display: inline-block; background-color: #d9e0e7; padding: 6px; margin: 4px; border: 1px solid #8da1b4; border-radius: 5px; line-height: 60%\"><p style=\"margin-bottom: 0px\"/><p style=\"margin-bottom: 0px\">Profile: <a href=\"StructureDefinition-form-provenance.html\">Form Provenance</a></p></div><p>Provenance for <a href=\"QuestionnaireResponse/qr-123\">QuestionnaireResponse/qr-123</a></p><p>Summary</p><table class=\"grid\"><tr><td>Recorded</td><td>2025-10-29 10:32:00+0000</td></tr><tr><td>Activity</td><td><span title=\"Codes:{http://fhir.tiro.health/CodeSystem/form-activity ai-clipboard}, {http://terminology.hl7.org/CodeSystem/iso-21089-lifecycle originate}\">An AI-engine has processed clipboard content</span></td></tr></table><p><b>Agents</b></p><table class=\"grid\"><tr><td><b>who</b></td><td><b>On Behalf Of</b></td></tr><tr><td>AI Engine</td><td><a href=\"Practitioner/pract-789\">Practitioner/pract-789</a></td></tr></table></div>"
},
"target" : [
{
"extension" : [
{
"url" : "http://hl7.org/fhir/StructureDefinition/targetElement",
"valueUri" : "item-789"
}
],
"reference" : "QuestionnaireResponse/qr-123"
}
],
"recorded" : "2025-10-29T10:32:00Z",
"activity" : {
"coding" : [
{
"system" : "http://fhir.tiro.health/CodeSystem/form-activity",
"code" : "ai-clipboard",
"display" : "AI Clipboard"
},
{
"system" : "http://terminology.hl7.org/CodeSystem/iso-21089-lifecycle",
"code" : "originate",
"display" : "Originate/Retain Record Lifecycle Event"
}
],
"text" : "An AI-engine has processed clipboard content"
},
"agent" : [
{
"who" : {
"display" : "AI Engine"
},
"onBehalfOf" : {
"reference" : "Practitioner/pract-789"
}
}
]
}
{
"resourceType" : "Provenance",
"id" : "prov-003",
"meta" : {
"profile" : [
🔗 "http://fhir.tiro.health/StructureDefinition/form-provenance"
]
},
"text" : {
"status" : "generated",
"div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p class=\"res-header-id\"><b>Generated Narrative: Provenance prov-003</b></p><a name=\"prov-003\"> </a><a name=\"hcprov-003\"> </a><div style=\"display: inline-block; background-color: #d9e0e7; padding: 6px; margin: 4px; border: 1px solid #8da1b4; border-radius: 5px; line-height: 60%\"><p style=\"margin-bottom: 0px\"/><p style=\"margin-bottom: 0px\">Profile: <a href=\"StructureDefinition-form-provenance.html\">Form Provenance</a></p></div><p>Provenance for <a href=\"QuestionnaireResponse/qr-123\">QuestionnaireResponse/qr-123</a></p><p>Summary</p><table class=\"grid\"><tr><td>Recorded</td><td>2025-10-29 10:33:00+0000</td></tr><tr><td>Activity</td><td><span title=\"Codes:{http://fhir.tiro.health/CodeSystem/form-activity fhirpath}, {http://terminology.hl7.org/CodeSystem/iso-21089-lifecycle originate}\">A calculation has been performed using a FHIRPath expression</span></td></tr></table><p><b>Agents</b></p><table class=\"grid\"><tr><td><b>Type</b></td><td><b>who</b></td></tr><tr><td><span title=\"Codes:{http://fhir.tiro.health/CodeSystem/agent-types fhirpath-engine}\">FHIRPath Engine</span></td><td>FHIRPath.js</td></tr></table></div>"
},
"target" : [
{
"extension" : [
{
"url" : "http://hl7.org/fhir/StructureDefinition/targetElement",
"valueUri" : "item-999"
}
],
"reference" : "QuestionnaireResponse/qr-123"
}
],
"recorded" : "2025-10-29T10:33:00Z",
"activity" : {
"coding" : [
{
"system" : "http://fhir.tiro.health/CodeSystem/form-activity",
"code" : "fhirpath",
"display" : "FHIRPath calculation"
},
{
"system" : "http://terminology.hl7.org/CodeSystem/iso-21089-lifecycle",
"code" : "originate",
"display" : "Originate/Retain Record Lifecycle Event"
}
],
"text" : "A calculation has been performed using a FHIRPath expression"
},
"agent" : [
{
"type" : {
"coding" : [
{
"system" : "http://fhir.tiro.health/CodeSystem/agent-types",
"code" : "fhirpath-engine",
"display" : "FHIRPath Engine"
}
]
},
"who" : {
"display" : "FHIRPath.js"
}
}
]
}
Agents represent actors that perform or participate in actions:
| Type | Display | Description |
|---|---|---|
fhirpath-engine |
FHIRPath Engine | FHIRPath expression evaluation engine |
population-engine |
Population Engine | Engine that populates forms from external data |
preset-engine |
Preset Engine | Engine that applies preset configurations |
Agents can include:
agent-types CodeSystem)ai-clipboard with ai)recorded fieldtargetElement extension to point to exact QuestionnaireResponse.item.idamend activity and ISO 21089 lifecycle when updating existing dataTrack who entered what data and when, providing complete transparency for regulatory compliance.
Identify fields populated by AI vs. manual entry to assess confidence levels.
Analyze which fields are frequently manually corrected after AI population to improve algorithms.
Demonstrate compliance with requirements for tracking data provenance in clinical systems.
Trace data back to its source through the entity array with role "source" or "derivation".