Colorectal 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 “HL7FHIRMessageColorectal.xml” based on colorectal 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 Colorectal 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 | ||||
Familial Cancer History Father | observation01 | Observation.component.valueBoolean | true | Optional | ||
Familial Cancer History Mother | observation01 | Observation.component.valueBoolean | true | Optional | ||
Medical History | condition01 | Condition.code.text | N39.8 | Optional | ||
Medication general info | medication01 | Medication.code.text | Medication therapy | Optional | ||
Syndromes | condition01 | Condition.evidence.code.coding.code | 2 | Optional | CodeSystem | |
Condition.evidence.code.coding.display | Hereditary non-polyposis colon cancer syndrome (HNPCC) | Optional | ||||
CEA general info | observation01 | Observation.component.valueQuantity.value | 11.9 | Optional | ||
CA19-9 | observation01 | Observation.component.valueQuantity.value | 37 | Optional | ||
Current state | patient01 | Patient.extension.valueCode | 0 | Optional | Extension | |
Note 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 | Malignant neoplasm of colon and/or rectum (disorder) | Mandatory | ||
Delivery Time general info | - | Bundle.timestamp | 2023-07-25T12: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 |
---|---|---|---|---|---|---|
Altered bowel habit baseline | observation02 | Observation.component.valueBoolean | true | Optional | ||
Iron-deficiency anemia baseline | observation02 | Observation.component.valueBoolean | true | Optional | ||
Bowel obstruction baseline | observation02 | Observation.component.valueBoolean | true | Optional | ||
Weight Loss baseline | observation02 | Observation.component.valueBoolean | true | Optional | ||
Other symptoms baseline | condition02 | Condition.evidence.code.text | Other symptoms | Optional | ||
Existence of Laboratory data baseline | observation02 | Observation.component.valueBoolean | true | Optional | ||
Computerized axial tomography (CT) baseline | observation03 | Observation.component.valueBoolean | true | Optional | ||
Annotated CT baseline | observation03 | Observation.component.valueCodeableConcept.coding.code | 1 | Optional | CodeSystem | |
Observation.component.valueCodeableConcept.coding.display | Positive annotation | Optional | ||||
Magnetic resonance imaging (MRI) baseline | observation03 | Observation.component.valueBoolean | true | Optional | ||
Annotated MRI baseline | observation03 | Observation.component.valueCodeableConcept.coding.code | 1 | Optional | CodeSystem | |
Observation.component.valueCodeableConcept.coding.display | Positive annotation | Optional | ||||
Positron emission tomography (PET/CT) baseline | observation03 | Observation.component.valueBoolean | true | Optional | ||
Annotated PET/CT baseline | observation03 | Observation.component.valueCodeableConcept.coding.code | 1 | Optional | CodeSystem | |
Observation.component.valueCodeableConcept.coding.display | Positive annotation | Optional | ||||
Histopathology Image baseline | observation03 | Observation.component.valueBoolean | true | Optional | ||
Annotated Histopathology Image baseline | observation03 | Observation.component.valueCodeableConcept.coding.code | 1 | Optional | CodeSystem | |
Observation.component.valueCodeableConcept.coding.display | Positive annotation | Optional | ||||
Xray baseline | observation03 | Observation.component.valueBoolean | true | Optional | ||
Annotated Xray baseline | observation03 | Observation.component.valueCodeableConcept.coding.code | 1 | Optional | CodeSystem | |
Observation.component.valueCodeableConcept.coding.display | Positive annotation | Optional | ||||
Location baseline | observation03 | Observation.bodySite.coding.code | 6 | Optional | CodeSystem | |
Observation.bodySite.coding.display | Rectal | Optional | ||||
Location for rectal cancer | observation03 | Observation.bodySite.coding.code | 3 | Optional | CodeSystem | If Location baseline=6 or Rectal, else delete coding Location for rectal cancer |
Observation.bodySite.coding.display | High rectal | Optional | ||||
Max tumor diameter baseline | observation02 | Observation.component.valueQuantity.value | 4.8 | Optional | ||
Lymph nodes baseline | observation02 | Observation.component.valueBoolean | true | Optional | ||
Lymph node stations baseline | observation02 | Observation.component.valueInteger | 13 | Optional | ||
Lymph nodes max short axis diameter baseline | observation02 | Observation.component.valueQuantity.value | 9 | Optional | ||
Distant metastasis baseline | observation02 | Observation.component.valueBoolean | true | Optional | ||
Distant metastasis location baseline | observation02 | Observation.bodySite.coding.code | 3 | Optional | CodeSystem | |
Observation.bodySite.coding.display | Ovary | Optional | ||||
Ti baseline | observation02 | Observation.component.valueString | Tis | Optional | ||
Ni baseline | observation02 | Observation.component.valueString | N0 | Optional | ||
Mi baseline | observation02 | Observation.component.valueString | M0 | Optional | ||
Stage | observation02 | Observation.component.valueString | IIA | Optional | ||
Rectal cancer baseline | observation02 | Observation.component.valueBoolean | true | Optional | ||
MRF involvement | observation02 | Observation.component.valueBoolean | true | Optional | ||
EMVI | observation02 | Observation.component.valueBoolean | true | Optional |
2.2.3. Tab template Timepoints
Variable | ID resource | FHIR message location | Example value | Required by FHIR specification | INCISVE Profile | Comments |
---|---|---|---|---|---|---|
Label timepoints | observation04 | Observation.code.coding.code | 1 | Mandatory | CodeSystem | |
Observation.code.coding.display | After 1st Treatment | Mandatory | ||||
Define other if selected timepoints | observation04 | Observation.category.text | Between 1st and 2nd dose of CT | Optional | ||
Date timepoints | observation04 | Observation.valueInteger | 2 | Optional | ||
Altered bowel habit timepoints | observation04 | Observation.component.valueBoolean | true | Optional | ||
Iron-deficiency anemia timepoints | observation04 | Observation.component.valueBoolean | true | Optional | ||
Bowel obstruction timepoints | observation04 | Observation.component.valueBoolean | true | Optional | ||
Weight Loss timepoints | observation04 | Observation.component.valueBoolean | true | Optional | ||
Other symptoms timepoints | condition03 | Condition.evidence.code.text | Other symptoms | Optional | ||
Performance status | observation04 | Observation.component.valueInteger | 5 | Optional | ||
Existence of Laboratory data timepoints | observation04 | Observation.component.valueBoolean | true | Optional | ||
Computerized axial tomography (CT) timepoints | observation04 | Observation.component.valueBoolean | true | Optional | ||
Annotated CT timepoints | observation04 | Observation.component.valueCodeableConcept.coding.code | 1 | Optional | CodeSystem | |
Observation.component.valueCodeableConcept.coding.display | Positive annotation | Optional | ||||
Magnetic resonance imaging (MRI) timepoints | observation04 | Observation.component.valueBoolean | true | Optional | ||
Annotated MRI timepoints | observation04 | Observation.component.valueCodeableConcept.coding.code | 1 | Optional | CodeSystem | |
Observation.component.valueCodeableConcept.coding.display | Positive annotation | Optional | ||||
Positron emission tomography (PET/CT) timepoints | observation04 | Observation.component.valueBoolean | true | Optional | ||
Annotated PET/CT timepoints | observation04 | Observation.component.valueCodeableConcept.coding.code | 1 | Optional | CodeSystem | |
Observation.component.valueCodeableConcept.coding.display | Positive annotation | Optional | ||||
Histopathology Image timepoints | observation04 | Observation.component.valueBoolean | true | Optional | ||
Annotated Histopathology Image timepoints | observation04 | Observation.component.valueCodeableConcept.coding.code | 1 | Optional | CodeSystem | |
Observation.component.valueCodeableConcept.coding.display | Positive annotation | Optional | ||||
Xray timepoints | observation04 | Observation.component.valueBoolean | true | Optional | ||
Annotated Xray timepoints | observation04 | Observation.component.valueCodeableConcept.coding.code | 1 | Optional | CodeSystem | |
Observation.component.valueCodeableConcept.coding.display | Positive annotation | Optional | ||||
Max tumor diameter timepoints | observation04 | Observation.component.valueQuantity.value | 4.8 | Optional | ||
Lymph nodes timepoints | observation04 | Observation.component.valueBoolean | true | Optional | ||
Lymph node stations timepoints | observation04 | Observation.component.valueInteger | 13 | Optional | ||
Lymph nodes max short axis diameter timepoints | observation04 | Observation.component.valueQuantitiy.value | 9 | Optional | ||
Distant metastasis timepoints | observation04 | Observation.component.valueBoolean | true | Optional | ||
Distant metastasis location timepoints | observation04 | Observation.bodySite.coding.code | 3 | Optional | CodeSystem | |
Observation.bodySite.coding.display | Ovary | Optional | ||||
Response to treatment | observation04 | Observation.component.valueCodeableConcept.coding.code | 1 | Optional | CodeSystem | |
Observation.component.valueCodeableConcept.coding.display | CR | Optional | ||||
Ti timepoints | observation04 | Observation.component.valueString | Tis | Optional | ||
Ni timepoints | observation04 | Observation.component.valueString | N0 | Optional | ||
Mi timepoints | observation04 | 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 | observation05 | Observation.code.coding.code | 1 | Mandatory | CodeSystem | |
Observation.code.coding.display | After 1st Treatment-1st FollowUp | Mandatory | ||||
Define other if selected treatment | observation05 | Observation.category.text | Between 1st and 2nd dose of CT | Optional | ||
Surgery treatment | If = true | |||||
Type of surgery | procedure01 | Procedure.category.text | Segmentomy | Optional | If Surgery treatment=true, else delete all procedure01 | |
Date of surgery | procedure01 | Procedure.performedString | 2 | Optional | ||
Chemotherapy (CTX) | If = true | |||||
Type of CTX | procedure02 | Procedure.code.text | Capecitabine | 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 | Nitrosoureas | 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 | Tamoxifen | Optional | If CIT=true, else delete all procedure04 | |
Date of last CIT | procedure04 | Procedure.performedString | 2 | Optional | ||
Radiation therapy (RT) | If = true | |||||
Date of last RT | procedure05 | Procedure.performedString | 2 | Optional | If RT=true, else delete all procedure05 | |
Location of RT | procedure05 | Procedure.bodySite.coding.code | 1 | Optional | CodeSystem | |
Procedure.bodySite.coding.display | Rectum | Optional | ||||
Delivered dose Rectum [Gy] | medicationAdministration01 | MedicationAdministration.dosage.dose.value | 40.4 | Optional | ||
Delivered dose LN [Gy] | medicationAdministration02 | MedicationAdministration.dosage.dose.value | 50.4 | Optional | ||
Number of fractions | medicationAdministration02 | MedicationAdministration.dosage.rateQuantity.value | 28 | Optional | ||
Neoadjuvant treatment | observation05 | Observation.component.valueBoolean | true | Optional | ||
Post-treatment surgery | If=true | |||||
Type of post-treatment surgery | procedure06 | Procedure.category.text | Segmentomy | Optional | If Post-treatment surgery=true, else delete all procedure06 | |
Date of post-treatment surgery | procedure06 | 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 | procedure07 | Procedure.statusReason.coding.code | 1 | Optional | CodeSystem | If Biopsy=true, else delete all procedure07 |
Procedure.statusReason.coding.display | After 1st Treatment | Optional | ||||
Define other if selected histology-mutations | procedure07 | Procedure.category.text | Between 1st and 2nd dose of CT | Optional | ||
Date of Biopsy | procedure07 | Procedure.performedString | 2 | Optional | ||
Surgery histology-mutations | If=true | |||||
Surgery date | procedure08 | Procedure.performedString | 2 | Optional | ||
Colon Cancer Type | observation08 | Observation.category.coding.code | 1 | Optional | CodeSystem | |
observation08 | Observation.category.coding.display | Adenocarcinoma | Optional | |||
Colon Cancer Grade | observation08 | Observation.component.valueInteger | 1 | Optional | ||
K-Ras | observation06 | Observation.component.valueBoolean | true | Optional | ||
APC | observation06 | Observation.component.valueBoolean | true | Optional | ||
TP53 | observation06 | Observation.component.valueBoolean | true | Optional | ||
18q LOH | observation06 | Observation.component.valueBoolean | true | Optional | ||
TGFBR | observation06 | Observation.component.valueBoolean | true | Optional | ||
PIK3CA | observation06 | Observation.component.valueBoolean | true | Optional | ||
MSI | observation06 | Observation.component.valueBoolean | true | Optional | ||
MMR | observation06 | Observation.component.valueBoolean | true | Optional | ||
Sampling | observation07 | Observation.component.valueString | Light microscopy | Optional | ||
Staining/type of assay performed | observation07 | Observation.component.valueString | Hematoxylin | Optional | ||
Magnification | observation07 | Observation.component.valueString | x10 | Optional | ||
Other sample-related information | observation07 | 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 | observation09 | Observation.code.coding.code | 1 | Mandatory | CodeSystem | |
Observation.code.coding.display | After 1st Treatment | Mandatory | ||||
Define other if selected lab results | observation09 | Observation.category.text | Between 1st and 2nd dose of CT | Optional | ||
Date Laboratory | observation09 | Observation.valueInteger | 2 | Optional | ||
Leukocytes | observation09 | Observation.component.valueQuantity.value | 15.8 | Optional | ||
Hemoglobin (Hb) | observation09 | Observation.component.valueQuantity.value | 16.7 | Optional | ||
Hematocrit (HCT) | observation09 | Observation.component.valueQuantity.value | 47.4 | Optional | ||
Platelets (PLT) | observation09 | Observation.component.valueQuantity.value | 287 | Optional | ||
Blood sugar level | observation09 | Observation.component.valueQuantity.value | 87 | Optional | ||
Insulin | observation09 | Observation.component.valueQuantity.value | 4 | Optional | ||
Urea | observation09 | Observation.component.valueQuantity.value | 36 | Optional | ||
Creatinine | observation09 | Observation.component.valueQuantity.value | 0.72 | Optional | ||
Uric acid | observation09 | Observation.component.valueQuantity.value | 3.5 | Optional | ||
Potassium | observation09 | Observation.component.valueQuantity.value | 4.8 | Optional | ||
Sodium | observation09 | Observation.component.valeQuantity.value | 142 | Optional | ||
Calcium | observation09 | Observation.component.valueQuantity.value | 9.31 | Optional | ||
Cholesterol | observation09 | Observation.component.valueQuantity.value | 197 | Optional | ||
Triglycerides | observation09 | Observation.component.valueQuantity.value | 59 | Optional | ||
HDL | observation09 | Observation.component.valueQuantity.value | 60 | Optional | ||
Low density lipoprotein (LDL) | observation09 | Observation.component.valueQuantity.value | 120 | Optional | ||
SGOT | observation09 | Observation.component.valueQuantity.value | 19 | Optional | ||
SGPT | observation09 | Observation.component.valueQuantity.value | 33 | Optional | ||
y-GT | observation09 | Observation.component.valueQuantity.value | 14 | Optional | ||
ALP | observation09 | Observation.component.valueQuantity.value | 227 | Optional | ||
LDH | observation09 | Observation.component.valueQuantity.value | 270 | Optional | ||
TSH | observation09 | Observation.component.valueQuantity.value | 0.73 | Optional | ||
Cortisol | observation09 | Observation.component.valueQuantity.value | 22 | Optional | ||
CRP | observation09 | Observation.component.valueQuantity.value | 0.5 | Optional | ||
BNP | observation09 | Observation.component.valueQuantity.value | 120 | Optional | ||
HbA1c | observation09 | Observation.component.valueQuantity.value | 5.1 | Optional | ||
Total protein in urine | observation09 | Observation.component.valueQuantity.value | 80 | Optional | ||
Creatinine urine | observation09 | Observation.component.valueQuantity.value | 100 | Optional | ||
Carcinoembryonic antigen (CEA) | observation09 | Observation.component.valueQuantity.value | 11.9 | 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 | observation03 | 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.
Type of surgery | procedure01 | Procedure.category.text | Segmentomy | Optional | If Surgery treatment=true, else delete all procedure01 | |
Date of surgery | procedure01 | Procedure.performedString | 2 | Optional |