Lung Cancer Message HL7 FHIR Guide
1. Introduction
This guide aims to explain the process to follow in order to read and understand the xml message “HL7FHIRMessageLung.xml” based on lung Excel template.
2. Message description
In this chapter describes the message content in a table containing these columns.
2.1. Table Columns description
Column Name | Description |
---|---|
Tab Template | Tab name included in excel file of Lung Cancer |
Variable | Variable name included in Excel file |
ID resource | ID identification inside the assigned resource |
FHIR message location | Attribute used to inform the variable inside the bundle |
Example value | Example value used to inform the variable assigned |
Required by FHIR specification | Inform the variable is mandatory/optional in XML, based on compliance with the FHIR specification |
INCISIVE profile | URL of profiles created by INCISIVE |
Condition | Description term condition |
2.2. Table with Message description
2.2.1. Tab template General Info
Variable | ID resource | FHIR message location | Example value | Required by FHIR specification | INCISVE Profile | Comments |
---|---|---|---|---|---|---|
Patient Number | patient01 | Patient.identifier.value | 004-000001 | Optional | ||
Gender | patient01 | Patient.gender | female | Optional | ||
Age at diagnosis | diagnosticReport01 | DiagnosticReport.extension.valueAge.value | 56 | Mandatory | Extension | |
Ethnicity | patient01 | Patient.extension.valueCodeableConcept.coding.code | 1 | Optional | Extension | |
Patient.extension.valueCodeableConcept.coding.display | White | Optional | ||||
Medical History | condition01 | Condition.code.text | N39.8 | Optional | ||
Emphysema | observation01 | Observation.component.valueBoolean | true | Optional | ||
Smoker | observation02 | Observation.component.valueCodeableConcept.coding.code | 2 | Optional | CodeSystem | |
Observation.component.valueCodeableConcept.coding.display | Ex | Optional | ||||
Years of smoking | observation02 | Observation.component.valueInteger | 10 | Optional | ||
Number of cigarettes per day | observation02 | Observation.component.valueInteger | 15 | Optional | ||
Age quitting smoking | observation02 | Observation.component.valueInteger | 50 | Optional | ||
Familial Cancer History Father | observation01 | Observation.component.valueBoolean | true | Optional | ||
Familial Cancer History Mother | observation01 | Observation.component.valueBoolean | true | Optional | ||
Medication general info | medication01 | Medication.code.text | Medication therapy | Optional | ||
Current state | patient01 | Patient.extension.valueCode | 0 | Optional | Extension | |
Notes general info | observation01 | Observation.note.text | Observation note | Mandatory | ||
Provider | organization01 | Organization.identifier.type.coding.code | 001 | Optional | CodeSystem | |
Organization.identifier.type.coding.display | AUTH | Optional | ||||
Case | - | MessageHeader.eventCoding.display | Primary malignant neoplasm of lung (disorder) | Mandatory | ||
Delivery Time general info | - | Bundle.timestamp | 2023-07-24T12:29:17.239+02:00 | Optional |
2.2.2. Tab template Baseline
Variable | ID resource | FHIR message location | Example value | Required by FHIR specification | INCISVE Profile | Comments |
---|---|---|---|---|---|---|
Hemoptysis baseline | observation03 | Observation.component.valueBoolean | true | Optional | ||
Cough baseline | observation03 | Observation.component.valueBoolean | true | Optional | ||
Dyspnea baseline | observation03 | Observation.component.valueBoolean | true | Optional | ||
Weight Loss baseline | observation03 | Observation.component.valueBoolean | true | Optional | ||
Other symptoms baseline | condition02 | Condition.evidence.code.text | Other symptoms | Optional | ||
Performance status baseline | observation03 | Observation.component.valueInteger | 5 | Optional | ||
Existence of Laboratory data baseline | observation03 | Observation.component.valueBoolean | true | Optional | ||
Computerized axial tomography (CT) baseline | observation05 | Observation.component.valueBoolean | true | Optional | ||
Annotated CT baseline | observation05 | Observation.component.valueCodeableConcept.coding.code | 1 | Optional | CodeSystem | |
Observation.component.valueCodeableConcept.coding.display | Positive annotation | Optional | ||||
Magnetic resonance imaging (MRI) baseline | observation05 | Observation.component.valueBoolean | true | Optional | ||
Annotated MRI baseline | observation05 | Observation.component.valueCodeableConcept.coding.code | 1 | Optional | CodeSystem | |
Observation.component.valueCodeableConcept.coding.display | Positive annotation | Optional | ||||
Positron emission tomography (PET/CT) baseline | observation05 | Observation.component.valueBoolean | true | Optional | ||
Annotated PET/CT baseline | observation05 | Observation.component.valueCodeableConcept.coding.code | 1 | Optional | CodeSystem | |
Observation.component.valueCodeableConcept.coding.display | Positive annotation | Optional | ||||
Histopathology Image baseline | observation05 | Observation.component.valueBoolean | true | Optional | ||
Annotated Histopathology Image baseline | observation05 | Observation.component.valueCodeableConcept.coding.code | 1 | Optional | CodeSystem | |
Observation.component.valueCodeableConcept.coding.display | Positive annotation | Optional | ||||
Xray baseline | observation05 | Observation.component.valueBoolean | true | Optional | ||
Annotated Xray baseline | observation05 | Observation.component.valueCodeableConcept.coding.code | 1 | Optional | CodeSystem | |
Observation.component.valueCodeableConcept.coding.display | Positive annotation | Optional | ||||
Laterality | observation03 | Observation.component.valueCodeableConcept.coding.code | 0 | Optional | CodeSystem | |
Observation.component.valueCodeableConcept.coding.display | Right lung | Optional | ||||
Lobe | observation03 | Observation.component.valueCodeableConcept.coding.code | RUL | Optional | CodeSystem | |
Observation.component.valueCodeableConcept.coding.display | Right upper lobe | Optional | ||||
Max tumor diameter baseline | observation03 | Observation.component.valueQuantity.value | 4.8 | Optional | ||
Lung Volume | observation03 | Observation.component.valueQuantity.value | 4500000 | Optional | ||
Solidity | observation03 | Observation.component.valueCodeableConcept.coding.code | 0 | Optional | CodeSystem | |
Observation.component.valueCodeableConcept.coding.display | Solid | Optional | ||||
Central Necrosis | observation03 | Observation.component.valueBoolean | true | Optional | ||
Cavitation | observation03 | Observation.component.valueBoolean | true | Optional | ||
Borders | observation03 | Observation.component.valueCodeableConcept.coding.code | 0 | Optional | CodeSystem | |
Observation.component.valueCodeableConcept.coding.display | Irregular | Optional | ||||
Pleural Effusion baseline | observation03 | Observation.component.valueBoolean | true | Optional | ||
Lymph nodes baseline | observation04 | Observation.component.valueBoolean | true | Optional | ||
Lymph node stations baseline | observation04 | Observation.component.valueString | 1 | Optional | ||
Lymph nodes max short axis diameter baseline | observation04 | Observation.component.valueQuantity.value | 1.3 | Optional | ||
Lung nodules baseline | observation04 | Observation.component.valueBoolean | true | Optional | ||
Number of nodules baseline | observation04 | Observation.component.valueInteger | 1 | Optional | ||
Lung nodules location baseline | observation04 | Observation.bodySite.coding.code | 1 | Optional | CodeSystem | |
Observation.bodySite.coding.display | Same lung | Optional | ||||
Distant metastasis baseline | observation03 | Observation.component.valueBoolean | true | Optional | ||
Distant metastasis location baseline | observation03 | Observation.bodySite.coding.code | 1 | Optional | CodeSystem | |
Observation.bodySite.coding.display | Liver | Optional | ||||
Stage baseline | observation03 | Observation.component.valueString | IA3 | Optional | ||
Ti baseline | observation03 | Observation.component.valueString | T0 | Optional | ||
Ni baseline | observation03 | Observation.component.valueString | N0 | Optional | ||
Mi baseline | observation03 | Observation.component.valueString | M0 | Optional |
2.2.3. Tab template Timepoints
Variable | ID resource | FHIR message location | Example value | Required by FHIR specification | INCISVE Profile | Comments |
---|---|---|---|---|---|---|
Label timepoints | observation06 | Observation.code.coding.code | 1 | Mandatory | CodeSystem | |
Observation.code.coding.display | After 1st Treatment | Mandatory | ||||
Define other if selected timepoints | observation06 | Observation.category.text | Between 1st and 2nd dose of CT | Optional | ||
Distant metastasis location timepoints | observation06 | Observation.bodySite.coding.code | 1 | Optional | CodeSystem | |
Observation.bodySite.coding.display | Liver | Optional | ||||
Distant metastasis timepoints | observation06 | Observation.component.valueBoolean | true | Optional | ||
Date timepoints | observation06 | Observation.valueInteger | 2 | Optional | ||
Hemoptysis timepoints | observation06 | Observation.component.valueBoolean | true | Optional | ||
Cough timepoints | observation06 | Observation.component.valueBoolean | true | Optional | ||
Dyspnea timepoints | observation06 | Observation.component.valueBoolean | true | Optional | ||
Weight Loss timepoints | observation06 | Observation.component.valueBoolean | true | Optional | ||
Other symptoms timepoints | condition03 | Condition.evidence.code.text | Other symptoms | Optional | ||
Performance status timepoints | observation06 | Observation.component.valueInteger | 5 | Optional | ||
Existence of Laboratory data timepoints | observation06 | Observation.component.valueBoolean | true | Optional | ||
Computerized axial tomography (CT) timepoints | observation07 | Observation.component.valueBoolean | true | Optional | ||
Annotated CT timepoints | observation07 | Observation.component.valueCodeableConcept.coding.code | 1 | Optional | CodeSystem | |
Observation.component.valueCodeableConcept.coding.display | Positive annotation | Optional | ||||
Magnetic resonance imaging (MRI) timepoints | observation07 | Observation.component.valueBoolean | true | Optional | ||
Annotated MRI timepoints | observation07 | Observation.component.valueCodeableConcept.coding.code | 1 | Optional | CodeSystem | |
Observation.component.valueCodeableConcept.coding.display | Positive annotation | Optional | ||||
Positron emission tomography (PET/CT) timepoints | observation07 | Observation.component.valueBoolean | true | Optional | ||
Annotated PET/CT timepoints | observation07 | Observation.component.valueCodeableConcept.coding.code | 1 | Optional | CodeSystem | |
Observation.component.valueCodeableConcept.coding.display | Positive annotation | Optional | ||||
Histopathology Image timepoints | observation07 | Observation.component.valueBoolean | true | Optional | ||
Annotated Histopathology Image timepoints | observation07 | Observation.component.valueCodeableConcept.coding.code | 1 | Optional | CodeSystem | |
Observation.component.valueCodeableConcept.coding.display | Positive annotation | Optional | ||||
Xray timepoints | observation07 | Observation.component.valueBoolean | true | Optional | ||
Annotated Xray timepoints | observation07 | Observation.component.valueCodeableConcept.coding.code | 1 | Optional | CodeSystem | |
Observation.component.valueCodeableConcept.coding.display | Positive annotation | Optional | ||||
Max tumor diameter timepoints | observation06 | Observation.component.valueQuantity.value | 4.8 | Optional | ||
Pleural Effusion timepoints | observation06 | Observation.component.valueBoolean | true | Optional | ||
Lymph nodes timepoints | observation08 | Observation.component.valueBoolean | true | Optional | ||
Lymph node stations timepoints | observation08 | Observation.component.valueString | 1 | Optional | ||
Lymph nodes max short axis diameter timepoints | observation08 | Observation.component.valueQuantity.value | 1.3 | Optional | ||
Lung nodules timepoints | observation08 | Observation.component.valueBoolean | true | Optional | ||
Lung nodules location timepoints | observation08 | Observation.bodySite.coding.code | 1 | Optional | CodeSystem | |
Observation.bodySite.coding.display | Same lung | Optional | ||||
Stage timepoints | observation06 | Observation.component.valueString | IA3 | Optional | ||
Response to treatment | observation06 | Observation.component.valueCodeableConcept.coding.code | 1 | Optional | CodeSystem | |
Observation.component.valueCodeableConcept.coding.display | CR | Optional | ||||
Ti timepoints | observation06 | Observation.component.valueString | T0 | Optional | ||
Ni timepoints | observation06 | Observation.component.valueString | N0 | Optional | ||
Mi timepoints | observation06 | Observation.component.valueString | M0 | Optional |
2.2.4. Tab template Treatment
Variable | ID resource | FHIR message location | Example value | Required by FHIR specification | INCISVE Profile | Comments |
---|---|---|---|---|---|---|
Label treatment | observation09 | Observation.code.coding.code | 1 | Mandatory | CodeSystem | |
Observation.code.coding.display | After 1st Treatment-1st FollowUp | Mandatory | ||||
Define other if selected treatment | observation09 | Observation.category.text | Between 1st and 2nd dose of CT | Optional | ||
Surgery treatment | If = true | |||||
Type of surgery | procedure01 | Procedure.category.text | Pneumonectomy | Optional | If Surgery treatment =true, else delete all procedure01 and component Lymphadenectomy of observation09 | |
Date of surgery | procedure01 | Procedure.performedString | 2 | Optional | ||
Location of Surgery | procedure01 | Procedure.bodySite.text | RUL | Optional | ||
Lymphadenectomy | observation09 | Observation.component.valueBoolean | true | Optional | ||
Chemotherapy (CTX) | If = true | |||||
Type of CTX | procedure02 | Procedure.code.text | Cisplatino | Optional | If CTX=true, else delete all procedure02 | |
Date of last CTX | procedure02 | Procedure.performedString | 2 | Optional | ||
Chemoradiotherapy (CRT) | If = true | |||||
Type of CRT | procedure03 | Procedure.code.text | Crizotinib | Optional | If CRT=true, else delete all procedure03 | |
Date of last CRT | procedure03 | Procedure.performedString | 2 | Optional | ||
Chemoimmunotherapy (CIT) | If = true | |||||
Type of CIT | procedure04 | Procedure.code.text | Crizotinib | Optional | If CIT=true, else delete all procedure04 | |
Date of last CIT | procedure04 | Procedure.performedString | 2 | Optional | ||
Targeted therapy (TT) | If = true | |||||
Type of TT | procedure05 | Procedure.code.text | Crizotinib | Optional | If TT=true, else delete all procedure05 | |
Date of last TT | procedure05 | Procedure.performedString | 2 | Optional | ||
Immune therapy (IT) | If = true | |||||
Type of IT | procedure06 | Procedure.code.text | Alectinib | Optional | If IT=true, else delete all procedure06 | |
Date of last IT | procedure06 | Procedure.performedString | 2 | Optional | ||
Radiation therapy (RT) | If=true | |||||
Date of last RT | procedure07 | Procedure.performedString | 2 | Optional | If RT=true, else delete all procedure07 | |
Delivered dose of RT | medicationAdministration01 | MedicationAdministration.dosage.dose.value | 50.4 | Optional | ||
Number of fractions RT | medicationAdministration01 | MedicationAdministration.dosage.rateQuantity.value | 28 | Optional | ||
Post-treatment surgery | If = true | |||||
Type of post-treatment surgery | procedure08 | Procedure.category.text | Pneumonectomy | Optional | If Post-treatment surgery=true, else delete all procedure08 | |
Date of post-treatment surgery | procedure08 | Procedure.performedString | 2 | Optional |
2.2.5. Tab template Histology - Mutations
Variable | ID resource | FHIR message location | Example value | Required by FHIR specification | INCISVE Profile | Comments |
---|---|---|---|---|---|---|
Biopsy | If = true | |||||
Biopsy label | procedure09 | Procedure.statusReason.coding.code | 1 | Optional | CodeSystem | If Biopsy=true, else delete all procedure09 |
Procedure.statusReason.coding.display | After 1st Treatment | Optional | ||||
Define other if selected histology-mutations | procedure09 | Procedure.category.text | Between 1st and 2nd dose of CT | Optional | ||
Date of Biopsy | procedure09 | Procedure.performedString | 2 | Optional | ||
Surgery histology-mutations | If = true | |||||
Surgery date | procedure10 | Procedure.performedString | 2 | Optional | If Surgery histology-mutations=true, else delete all procedure10 | |
Lung Cancer Type | observation12 | Observation.category.coding.code | 1 | Optional | CodeSystem | |
observation12 | Observation.category.coding.display | Adenocarcinoma | Optional | |||
Lung Cancer Grade | observation12 | Observation.component.valueInteger | 1 | Optional | ||
PD-L1 | observation10 | Observation.component.valueBoolean | true | Optional | ||
BRAF | observation10 | Observation.component.valueBoolean | true | Optional | ||
ALK | observation10 | Observation.component.valueBoolean | true | Optional | ||
EGFR | observation10 | Observation.component.valueQuantity.value | 10 | Optional | ||
HER2 | observation10 | Observation.component.valueBoolean | true | Optional | ||
MET | observation10 | Observation.component.valueBoolean | true | Optional | ||
RET | observation10 | Observation.component.valueBoolean | true | Optional | ||
ROS1 | observation10 | Observation.component.valueBoolean | true | Optional | ||
IGF1R | observation10 | Observation.component.valueBoolean | true | Optional | ||
ERBB2 | observation10 | Observation.component.valueBoolean | true | Optional | ||
PIK3CA | observation10 | Observation.component.valueBoolean | true | Optional | ||
KRAS | observation10 | Observation.component.valueBoolean | true | Optional | ||
Sampling | observation11 | Observation.component.valueString | Light microscopy | Optional | ||
Staining/type of assay performed | observation11 | Observation.component.valueString | Hematoxylin | Optional | ||
Magnification | observation11 | Observation.component.valueString | x10 | Optional | ||
Other sample-related information | observation11 | Observation.component.valueString | example | Optional |
2.2.6. Tab template Lab Results
Variable | ID resource | FHIR message location | Example value | Required by FHIR specification | INCISVE Profile | Comments |
---|---|---|---|---|---|---|
Exam label | observation13 | Observation.code.coding.code | 1 | Mandatory | CodeSystem | |
Observation.code.coding.display | After 1st Treatment | Mandatory | ||||
Define other if selected lab results | observation13 | Observation.category.text | Between 1st and 2nd dose of CT | Optional | ||
Date Laboratory | observation13 | Observation.valueInteger | 2 | Optional | ||
Leukocytes | observation13 | Observation.component.valueQuantity.value | 15.8 | Optional | ||
Hemoglobin (Hb) | observation13 | Observation.component.valueQuantity.value | 16.7 | Optional | ||
Hematocrit (HCT) | observation13 | Observation.component.valueQuantity.value | 47.4 | Optional | ||
Platelets (PLT) | observation13 | Observation.component.valueQuantity.value | 287 | Optional | ||
Blood sugar levels | observation13 | Observation.component.valueQuantity.value | 87 | Optional | ||
Insulin | observation13 | Observation.component.valueQuantity.value | 4 | Optional | ||
Urea | observation13 | Observation.component.valueQuantity.value | 36 | Optional | ||
Creatinine | observation13 | Observation.component.valueQuantity.value | 0.72 | Optional | ||
Uric acid | observation13 | Observation.component.valueQuantity.value | 3.5 | Optional | ||
Potassium | observation13 | Observation.component.valueQuantity.value | 4.8 | Optional | ||
Sodium | observation13 | Observation.component.valueQuantity.value | 142 | Optional | ||
Calcium | observation13 | Observation.component.valueQuantity.value | 9.31 | Optional | ||
Cholesterol | observation13 | Observation.component.valueQuantity.value | 197 | Optional | ||
Triglycerides | observation13 | Observation.component.valueQuantity.value | 59 | Optional | ||
HDL | observation13 | Observation.component.valueQuantity.value | 60 | Optional | ||
LDL | observation13 | Observation.component.valueQuantity.value | 120 | Optional | ||
SGOT | observation13 | Observation.component.valueQuantity.value | 19 | Optional | ||
SGPT | observation13 | Observation.component.valueQuantity.value | 33 | Optional | ||
y-GT | observation13 | Observation.component.valueQuantity.value | 14 | Optional | ||
ALP | observation13 | Observation.component.valueQuantity.value | 227 | Optional | ||
LDH | observation13 | Observation.component.valueQuantity.value | 270 | Optional | ||
TSH | observation13 | Observation.component.valueQuantity.value | 0.73 | Optional | ||
Cortisol | observation13 | Observation.component.valueQuantity.value | 22 | Optional | ||
CRP | observation13 | Observation.component.valueQuantity.value | 0.5 | Optional | ||
BNP | observation13 | Observation.component.valueQuantity.value | 120 | Optional | ||
HbA1c | observation13 | Observation.component.valueQuantity.value | 5.1 | Optional | ||
Total protein in urine | observation13 | Observation.component.valueQuantity.value | 80 | Optional | ||
Creatinine urine | observation13 | Observation.component.valueQuantity.value | 100 | Optional |
In order to build the message for each patient, and to report the variables in the table above, the following steps must be followed:
- Search inside the message text with the same word that appears in the "Variable" column.
- Check that the resource to which it redirects us has the same id as in the “ID resource” column.
- Enter the desired value in the double quoted space of the attribute indicated in the "Fhirmessage location" column.
- Do not delete any part of the message, the whole structure must be the same, just change the example value, for the value you want to report. Do not change the order.
- If you don’t have the information of the element, you can delete the node, but validate XML to ensure the structure of the XML FHIR is still correct and has no errors (you can omit the warnings in the validation).
The entire message structure is static except for the values given for the attributes in the "Fhir message location" column and the timestamp which is the current datatime.
2.3. Description mandatory/optional of term
There will be mandatory/optional for different scenarios, according to different scenarios corresponding to different rules. These scenarios are described separately below.
- If the attribute is mandatory, all attribute structure information for this column must be reported. It cannot be deleted.
Notes general info | observation01 | Observation.note.text | Observation note | Mandatory |
- If the attribute is mandatory with a comment reporting the condition of this variable, all attribute structure information for this column must be reported, unless the variable has not value for report, all resources must be deleted.
- If an optional attribute needs to be deleted, all attribute structures except for the primary resource (e.g., observation, procedure, condition, etc.) must be deleted if that primary resource has another variable. For example, for the variable Gender, you can delete the attribute gender from the resource Patient, while other attributes such as identifier have values and do not have to be deleted.
Gender | patient01 | Patient.gender | female | Optional |
- If the attribute is optional, this happens in observation.component because Observation.component has two parts inside, Observation.component.code and Observation.component.value (this value can be valueCodeableConcept, ValueBoolean, ValueSrting, valueInteger, valueQuantity, etc.). If the variable has a value that needs to be informed, then code is mandatory, that code is mostly the SNOMED CT code or LOINC code for that variable. This means that if you need to delete variable, then you need to delete all Observation.component and cannot delete the whole Observation resource, unless there are no other elements in the same Observation, then you can delete the whole Observation resource.
Annotated CT baseline | observation05 | Observation.component.valueCodeableConcept.coding.code | 1 | Optional | CodeSystem | |
Observation.component.valueCodeableConcept.coding.display | Positive annotation | Optional |
- If the attribute is optional with a comment reporting the condition of this variable, you can delete all resource if the variable has not value for report.
Surgery date | procedure10 | Procedure.performedString | 2 | Optional | If Surgery histology-mutations=true, else delete all procedure10 |