Template-based extraction
Use cases
1. Sugery report Robotic-assisted laparoscopic prostatectomy
A first use-case is a surgery report for a robotic-assisted laparoscopic prostatectomy (RALP). The Questionnaire below is actually a simplified fragement of the real template. It is used to report the surgery details and specifically the additional procedures that were performed during the surgery.
Questionnaire:
resourceType: Questionnaire
title: "Surgery report RALP"
url: http://templates.tiro.health/templates/surgery-report-ralp
status: active
item:
- linkId: additional-procedures
text: "Additional procedures"
type: choice
repeats: true
answerOption:
- valueCoding:
display: "Pelvic lymph node dissection"
code: "PLND"
- valueCoding:
display: "Seminal vesicle dissection"
code: "SVD"
- valueCoding:
display: "Bladder neck reconstruction"
code: "BNR"
- valueCoding:
display: "Urethral reconstruction"
code: "UR"
item:
- linkId: laterality
text: "Laterality"
type: choice
enableWhen:
- question: "additional-procedures"
operator: =
answerCoding:
code: "PLND"
answerOption:
- valueCoding:
display: "Left"
code: "L"
- valueCoding:
display: "Right"
code: "R"
- valueCoding:
display: "Bilateral"
code: "B"
extension:
- url: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-extractToTemplate
valueReference:
reference: "#extraction-bundle"
contained:
- resourceType: Bundle
id: extraction-bundle
type: transaction
entry:
- fullUrl: "urn:uuid:ralp"
request:
method: POST
url: "Procedure"
resource:
resourceType: Procedure
status: completed
subject:
extension:
- url: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-extractTemplateValue
valueString: "%resource.subject"
display: Current subject
recorded: "1970-01-01"
_recorded:
extension:
- url: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-extractTemplateValue
valueString: "%resource.authored"
code:
text: "Robotic-assisted laparoscopic prostatectomy"
- extension:
- url: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-extractTemplateValue
valueExpression:
language: text/fhirpath
expression: "%resource.item.where(linkId='additional-procedures')"
request:
method: POST
url: "Procedure"
resource:
resourceType: Procedure
status: completed
subject:
extension:
- url: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-extractTemplateValue
valueString: "%resource.subject"
display: Current subject
recorded: "1970-01-01"
_recorded:
extension:
- url: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-extractTemplateValue
valueString: "%resource.authored"
code:
text: "Additional procedure"
_text:
extension:
- url: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-extractTemplateValue
valueString: answer.valueCoding.display
coding:
- extension:
- url: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-extractTemplateValue
valueString: "answer.valueCoding"
partOf:
- reference: "#ralp"
bodySite:
- coding:
- extension:
- url: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-extractTemplateValue
valueString: "answer.valueCoding"
2. Repeating cancer stagings
A second more complex use-case to explore is the staging of lung cancer. The reduced template below is used for MDT-meetings where the staging of lung cancer is discussed. The template is used to report the mulitple presentations of the same patient over time.
Questionnaire:
resourceType: Questionnaire
title: Lung Cancer presentation
url: http://templates.tiro.health/templates/mdt-lung-cancer
status: active
item:
- linkId: presentation
text: "Lung Cancer presentation"
repeat: true
type: group
item:
- linkId: date-of-diagnosis
text: "Date of diagnosis"
type: date
required: true
- linkId: diagnosis
text: "Stage"
type: choice
required: true
answerValueSet: "http://terminology.tiro.health/r5/ValueSet/lung-cancer-diagnosis"
- linkId: tnm-staging
text: "TNM staging"
type: group
item:
- linkId: t
text: "T-category"
type: choice
answerValueSet: "http://terminology.tiro.health/r5/ValueSet/lung-cancer-tnm-t-category"
- linkId: n
text: "N-category"
type: choice
answerValueSet: "http://terminology.tiro.health/r5/ValueSet/lung-cancer-tnm-n-category"
- linkId: m
text: "M"
type: choice
answerValueSet: "http://terminology.tiro.health/r5/ValueSet/lung-cancer-tnm-m-category"
extension:
- url: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-extractToTemplate
valueReference:
reference: "#extraction-bundle"
contained:
- resourceType: Bundle
type: batch
entry:
- extension:
- url: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-extractTemplateValue
valueExpression:
language: text/fhirpath
expression: "resource.item.where(linkId='presentation')"
resource:
resourceType: Condition
status: active
subject:
extension:
- url: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-extractTemplateValue
valueString: "%resource.subject"
display: Current subject
code:
text: "Diagnosis"
_text:
extension:
- url: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-extractTemplateValue
valueString: "Diagnosis"
- extension:
- url: http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-extractTemplateValue
valueExpression:
QuestionnaireResponse:
resourceType: QuestionnaireResponse
status: completed
subject:
reference: Patient/123
encounter:
reference: Encounter/456
authored: "2024-11-10"
item:
- linkId: presentation
item:
- linkId: date-of-diagnosis
answer:
- valueDate: "2023-01-11"
- linkId: diagnosis
answer:
- valueCoding:
display: "Non-small cell lung cancer"
system: "http://snomed.info/sct"
code: "254637007"
- linkId: tnm-staging
item:
- linkId: t
answer:
- valueCoding:
code: "cT1"
display: "Tumor stage 1"
- linkId: n
answer:
- valueCoding:
code: "cN0"
display: "No regional lymph node metastasis"
- linkId: m
answer:
- valueCoding:
code: "cM0"
- linkId: presentation
item:
- linkId: date-of-diagnosis
answer:
- valueDate: "2024-11-10"
- linkId: diagnosis
answer:
- valueCoding:
display: "Non-small cell lung cancer"
system: "http://snomed.info/sct"
code: "254637007"
- linkId: tnm-staging
item:
- linkId: t
answer:
- valueCoding:
code: "cT2"
display: "Tumor stage 2"
- linkId: n
answer:
- valueCoding:
code: "cN1"
display: "Regional lymph node metastasis"
- linkId: m
answer:
- valueCoding:
code: "cM0"
display: "No distant metastasis"
## Thoughts
- It's a little too expect fields to be completed without guarantees. The extraction process however will succeed because of the default dummy values. Should there be a way to explicitly define expectation about optoinality and cardinality?
-