FHIR IG analytics| Package | hl7.eu.fhir.protect-child |
| Resource Type | ConceptMap |
| Id | ConceptMap-dm-immunological-data-to-fhir.json |
| FHIR Version | R4 |
| Source | https://build.fhir.org/ig/hl7-eu/protect-child/ConceptMap-dm-immunological-data-to-fhir.html |
| URL | https://hl7.eu/fhir/ig/hl7.eu.fhir.protect-child/ConceptMap/dm-immunological-data-to-fhir |
| Version | 0.1.0-ci-build |
| Status | draft |
| Date | 2026-09-28T06:51:47+00:00 |
| Name | DmImmunologicalDataToFhir |
| Title | DM immunological_data columns → FHIR codes |
| Realm | eu |
| Authority | hl7 |
| Description | Maps each result column of the DMv1.2 immunological_data table to the code of the resource it becomes. The row itself becomes an ImmunologicalDataReport, and the biopsy columns a GraftBiopsy carrying the same immunological_data_id. Three columns have no code of their own: `if` becomes GraftBiopsy.conclusion, `c4d` becomes C4dStain.note, and the free text of `pre_transplant_anti_hla_dsa` becomes AntiHlaAntibodyScreen.note. The HLA columns are marked `wider` because each maps to a locus code shared by both allele columns: one Observation per allele replaces the ordered pair of slots. |
No resources found
| CodeSystem | ||
| kl.dk.fhir.children#2.1.0 | loinc.org | Logical Observation Identifiers, Names and Codes (LOINC) |
| hl7.eu.fhir.protect-child#current | dm-variable-cs | PROTECT-CHILD Data Model Variables |
| hl7.eu.fhir.protect-child#current | graft-pathology-cs | Graft Pathology Codes |
| hl7.eu.fhir.protect-child#current | imm-data-component-cs | Immunological Data Component Codes |
| ValueSet | ||
| hl7.eu.fhir.protect-child#current | dm-immunological-data-variable-vs | PROTECT-CHILD DM immunological_data variables |
Note: links and images are rebased to the (stated) source
Generated Narrative: ConceptMap dm-immunological-data-to-fhir
Mapping from PROTECT-CHILD DM immunological_data variables to (not specified)
Group 1 Mapping from PROTECT-CHILD Data Model Variables to Logical Observation Identifiers, Names and Codes (LOINC)
| Source Code | Relationship | Target Code | Comment |
| immunological_data.blood_group | is equivalent to | 883-9 (ABO group [Type] in Blood) | BloodGroupObservation.code |
| immunological_data.rh_factor | is equivalent to | 10331-7 (Rh [Type] in Blood) | BloodGroupObservation.code |
| immunological_data.hla_a_1 | maps to wider concept | 13298-5 (HLA-A [Type]) | HlaTyping.code. One Observation per allele: hla_a_1 and hla_a_2 become two HlaTyping resources with the same code, since HLA alleles are not ordered. Use 57290-9 or 78014-8 where the typing resolution is known. |
| immunological_data.hla_a_2 | maps to wider concept | 13298-5 (HLA-A [Type]) | HlaTyping.code. See hla_a_1. |
| immunological_data.hla_b_1 | maps to wider concept | 13299-3 (HLA-B [Type]) | HlaTyping.code. Use 57291-7 or 78015-5 where the resolution is known. |
| immunological_data.hla_b_2 | maps to wider concept | 13299-3 (HLA-B [Type]) | HlaTyping.code. See hla_b_1. |
| immunological_data.hla_c_1 | maps to wider concept | 13302-5 (HLA-C [Type]) | HlaTyping.code. Use 77636-9 or 96636-6 where the resolution is known. |
| immunological_data.hla_c_2 | maps to wider concept | 13302-5 (HLA-C [Type]) | HlaTyping.code. See hla_c_1. |
| immunological_data.hla_drb1_1 | maps to wider concept | 57298-2 (HLA-DRB1 [Type]) | HlaTyping.code. Use 57293-3 or 96664-8 where the resolution is known. |
| immunological_data.hla_drb1_2 | maps to wider concept | 57298-2 (HLA-DRB1 [Type]) | HlaTyping.code. See hla_drb1_1. |
| immunological_data.hla_dp_1 | maps to wider concept | 12285-3 (HLA-DP [Type]) | HlaTyping.code. The DM values are DPB1 alleles at an unrecorded resolution, so the ambiguous DP code is the safe migration target; new data SHOULD use 59017-4 (DPB1 high resolution) or 96648-1 (low resolution). |
| immunological_data.hla_dp_2 | maps to wider concept | 12285-3 (HLA-DP [Type]) | HlaTyping.code. See hla_dp_1. |
| immunological_data.hla_dqb1_1 | maps to wider concept | 53938-7 (HLA-DQB1 [Type]) | HlaTyping.code. Use 57299-0 or 78017-1 where the resolution is known. |
| immunological_data.hla_dqb1_2 | maps to wider concept | 53938-7 (HLA-DQB1 [Type]) | HlaTyping.code. See hla_dqb1_1. |
| immunological_data.anti_hla_antibodies | is equivalent to | 44534-6 (HLA Ab [Presence] in Serum) | AntiHlaAntibodyScreen.code. The DM boolean becomes a Positive or Negative result, so a negative screen is recorded rather than inferred from absence. |
| immunological_data.pre_transplant_anti_hla_dsa | narrower | 107913-6 (HLA-A and B and C (class I) and HLA-DP and DQ and DR (class II) Ab.IgG donor specific [Presence] in Serum or Plasma) | AntiHlaAntibodyScreen.code, with the DM free text in AntiHlaAntibodyScreen.note. |
| immunological_data.antibody_type | narrower | 107914-4 (HLA-A and B and C (class I) and HLA-DP and DQ and DR (class II) Ab.IgG donor specific [Identifier] in Serum or Plasma) | AntiHlaAntibody.code; the target HLA specificity becomes AntiHlaAntibody.valueString, one Observation per antibody. Use 98006-0 for an antibody that is not donor-specific. |
| immunological_data.ihc_if_c4d | is equivalent to | 49461-7 (C4d Ag [Presence] in Tissue by Immune stain) | C4dStain.code. The DM boolean maps to BanffC4dScoreCS c4d-0 (false) or c4d-1..c4d-3 (true). |
| immunological_data.anca | is equivalent to | 17351-8 (Neutrophil cytoplasmic Ab [Presence] in Serum) | AncaObservation.code. The DM boolean becomes Positive or Negative. |
Group 2 Mapping from PROTECT-CHILD Data Model Variables to Immunological Data Component Codes
| Source Code | Relationship | Target Code | Comment |
| immunological_data.post_transplant_ab_anti_hla_dsa_class | is equivalent to | hla-class (HLA class of the antibody) | AntiHlaAntibody.component[hla_class].code. LOINC has no component code for antibody class. |
| immunological_data.mfi | is equivalent to | mfi-category (MFI band) | AntiHlaAntibody.component[mfi_category].code. The measured MFI, where the laboratory reports it, goes in component[mfi_value]. |
Group 3 Mapping from PROTECT-CHILD Data Model Variables to Graft Pathology Codes
| Source Code | Relationship | Target Code | Comment |
| immunological_data.banff_category | is equivalent to | banff-category (Banff diagnostic category) | BanffAssessment.code, on the GraftBiopsy built from the same DM row. Neither LOINC nor SNOMED CT carries the Banff classification. |
{
"resourceType": "ConceptMap",
"id": "dm-immunological-data-to-fhir",
"text": {
"status": "generated",
"div": "<!-- snip (see above) -->"
},
"url": "https://hl7.eu/fhir/ig/hl7.eu.fhir.protect-child/ConceptMap/dm-immunological-data-to-fhir",
"version": "0.1.0-ci-build",
"name": "DmImmunologicalDataToFhir",
"title": "DM immunological_data columns → FHIR codes",
"status": "draft",
"experimental": true,
"date": "2026-09-28T06:51:47+00:00",
"publisher": "Protect Child",
"contact": [
{
"name": "Protect Child",
"telecom": [
{
"system": "url",
"value": "https://protect-child.eu/"
}
]
}
],
"description": "Maps each result column of the DMv1.2 immunological_data table to the code of the resource it becomes. The row itself becomes an ImmunologicalDataReport, and the biopsy columns a GraftBiopsy carrying the same immunological_data_id. Three columns have no code of their own: `if` becomes GraftBiopsy.conclusion, `c4d` becomes C4dStain.note, and the free text of `pre_transplant_anti_hla_dsa` becomes AntiHlaAntibodyScreen.note. The HLA columns are marked `wider` because each maps to a locus code shared by both allele columns: one Observation per allele replaces the ordered pair of slots.",
"sourceCanonical": "https://hl7.eu/fhir/ig/hl7.eu.fhir.protect-child/ValueSet/dm-immunological-data-variable-vs",
"group": [
{
"source": "https://hl7.eu/fhir/ig/hl7.eu.fhir.protect-child/CodeSystem/dm-variable-cs",
"target": "http://loinc.org",
"element": [
{
"code": "immunological_data.blood_group",
"target": [
{
"code": "883-9",
"display": "ABO group [Type] in Blood",
"equivalence": "equivalent",
"comment": "BloodGroupObservation.code"
}
]
},
{
"code": "immunological_data.rh_factor",
"target": [
{
"code": "10331-7",
"display": "Rh [Type] in Blood",
"equivalence": "equivalent",
"comment": "BloodGroupObservation.code"
}
]
},
{
"code": "immunological_data.hla_a_1",
"target": [
{
"code": "13298-5",
"display": "HLA-A [Type]",
"equivalence": "wider",
"comment": "HlaTyping.code. One Observation per allele: hla_a_1 and hla_a_2 become two HlaTyping resources with the same code, since HLA alleles are not ordered. Use 57290-9 or 78014-8 where the typing resolution is known."
}
]
},
{
"code": "immunological_data.hla_a_2",
"target": [
{
"code": "13298-5",
"display": "HLA-A [Type]",
"equivalence": "wider",
"comment": "HlaTyping.code. See hla_a_1."
}
]
},
{
"code": "immunological_data.hla_b_1",
"target": [
{
"code": "13299-3",
"display": "HLA-B [Type]",
"equivalence": "wider",
"comment": "HlaTyping.code. Use 57291-7 or 78015-5 where the resolution is known."
}
]
},
{
"code": "immunological_data.hla_b_2",
"target": [
{
"code": "13299-3",
"display": "HLA-B [Type]",
"equivalence": "wider",
"comment": "HlaTyping.code. See hla_b_1."
}
]
},
{
"code": "immunological_data.hla_c_1",
"target": [
{
"code": "13302-5",
"display": "HLA-C [Type]",
"equivalence": "wider",
"comment": "HlaTyping.code. Use 77636-9 or 96636-6 where the resolution is known."
}
]
},
{
"code": "immunological_data.hla_c_2",
"target": [
{
"code": "13302-5",
"display": "HLA-C [Type]",
"equivalence": "wider",
"comment": "HlaTyping.code. See hla_c_1."
}
]
},
{
"code": "immunological_data.hla_drb1_1",
"target": [
{
"code": "57298-2",
"display": "HLA-DRB1 [Type]",
"equivalence": "wider",
"comment": "HlaTyping.code. Use 57293-3 or 96664-8 where the resolution is known."
}
]
},
{
"code": "immunological_data.hla_drb1_2",
"target": [
{
"code": "57298-2",
"display": "HLA-DRB1 [Type]",
"equivalence": "wider",
"comment": "HlaTyping.code. See hla_drb1_1."
}
]
},
{
"code": "immunological_data.hla_dp_1",
"target": [
{
"code": "12285-3",
"display": "HLA-DP [Type]",
"equivalence": "wider",
"comment": "HlaTyping.code. The DM values are DPB1 alleles at an unrecorded resolution, so the ambiguous DP code is the safe migration target; new data SHOULD use 59017-4 (DPB1 high resolution) or 96648-1 (low resolution)."
}
]
},
{
"code": "immunological_data.hla_dp_2",
"target": [
{
"code": "12285-3",
"display": "HLA-DP [Type]",
"equivalence": "wider",
"comment": "HlaTyping.code. See hla_dp_1."
}
]
},
{
"code": "immunological_data.hla_dqb1_1",
"target": [
{
"code": "53938-7",
"display": "HLA-DQB1 [Type]",
"equivalence": "wider",
"comment": "HlaTyping.code. Use 57299-0 or 78017-1 where the resolution is known."
}
]
},
{
"code": "immunological_data.hla_dqb1_2",
"target": [
{
"code": "53938-7",
"display": "HLA-DQB1 [Type]",
"equivalence": "wider",
"comment": "HlaTyping.code. See hla_dqb1_1."
}
]
},
{
"code": "immunological_data.anti_hla_antibodies",
"target": [
{
"code": "44534-6",
"display": "HLA Ab [Presence] in Serum",
"equivalence": "equivalent",
"comment": "AntiHlaAntibodyScreen.code. The DM boolean becomes a Positive or Negative result, so a negative screen is recorded rather than inferred from absence."
}
]
},
{
"code": "immunological_data.pre_transplant_anti_hla_dsa",
"target": [
{
"code": "107913-6",
"display": "HLA-A and B and C (class I) and HLA-DP and DQ and DR (class II) Ab.IgG donor specific [Presence] in Serum or Plasma",
"equivalence": "narrower",
"comment": "AntiHlaAntibodyScreen.code, with the DM free text in AntiHlaAntibodyScreen.note."
}
]
},
{
"code": "immunological_data.antibody_type",
"target": [
{
"code": "107914-4",
"display": "HLA-A and B and C (class I) and HLA-DP and DQ and DR (class II) Ab.IgG donor specific [Identifier] in Serum or Plasma",
"equivalence": "narrower",
"comment": "AntiHlaAntibody.code; the target HLA specificity becomes AntiHlaAntibody.valueString, one Observation per antibody. Use 98006-0 for an antibody that is not donor-specific."
}
]
},
{
"code": "immunological_data.ihc_if_c4d",
"target": [
{
"code": "49461-7",
"display": "C4d Ag [Presence] in Tissue by Immune stain",
"equivalence": "equivalent",
"comment": "C4dStain.code. The DM boolean maps to BanffC4dScoreCS c4d-0 (false) or c4d-1..c4d-3 (true)."
}
]
},
{
"code": "immunological_data.anca",
"target": [
{
"code": "17351-8",
"display": "Neutrophil cytoplasmic Ab [Presence] in Serum",
"equivalence": "equivalent",
"comment": "AncaObservation.code. The DM boolean becomes Positive or Negative."
}
]
}
]
},
{
"source": "https://hl7.eu/fhir/ig/hl7.eu.fhir.protect-child/CodeSystem/dm-variable-cs",
"target": "https://hl7.eu/fhir/ig/hl7.eu.fhir.protect-child/CodeSystem/imm-data-component-cs",
"element": [
{
"code": "immunological_data.post_transplant_ab_anti_hla_dsa_class",
"target": [
{
"code": "hla-class",
"display": "HLA class of the antibody",
"equivalence": "equivalent",
"comment": "AntiHlaAntibody.component[hla_class].code. LOINC has no component code for antibody class."
}
]
},
{
"code": "immunological_data.mfi",
"target": [
{
"code": "mfi-category",
"display": "MFI band",
"equivalence": "equivalent",
"comment": "AntiHlaAntibody.component[mfi_category].code. The measured MFI, where the laboratory reports it, goes in component[mfi_value]."
}
]
}
]
},
{
"source": "https://hl7.eu/fhir/ig/hl7.eu.fhir.protect-child/CodeSystem/dm-variable-cs",
"target": "https://hl7.eu/fhir/ig/hl7.eu.fhir.protect-child/CodeSystem/graft-pathology-cs",
"element": [
{
"code": "immunological_data.banff_category",
"target": [
{
"code": "banff-category",
"display": "Banff diagnostic category",
"equivalence": "equivalent",
"comment": "BanffAssessment.code, on the GraftBiopsy built from the same DM row. Neither LOINC nor SNOMED CT carries the Banff classification."
}
]
}
]
}
]
}