Enrich FHIR resources with nlp-insights and ACD

The nlp-insights service supports enrichment of the following types of FHIR resources:

  • Condition
  • AllergyIntolerance

A resource is enriched by adding industry standard codes to the resource. These standard codes are derived from a resource's coding text using NLP. This particularly useful when a FHIR resource has a text description of the code, but does not contain industry standard codes such as SNOMED, ICD-9, ICD-10, etc.

This tutorial provides examples of enrichment.

Configure nlp-insights to use ACD for NLP

If the nlp-insights service has not been configured to use ACD by default, follow the steps here.

Enrich a Condition

In this example, the nlp-insights service is sent a bundle that contains a single condition. The condition has a code with text "myocardial infarction", but no coding values. The service will add coding values to the code. This curl command is written to store the response in a file /tmp/output.json for later analysis.

curl  -w "\n%{http_code}\n" -s -o /tmp/output.json -XPOST localhost:5000/discoverInsights  -H 'Content-Type: application/json; charset=utf-8' --data-binary @- << EOF
{
    "resourceType": "Bundle",
    "id": "abc",
    "type": "transaction",
    "entry": [
        {
            "resource": {
                "id": "abcefg-1234567890",
                "code": {
                    "text": "myocardial infarction"
                },
                "subject": {
                    "reference": "Patient/97b51b8d-1d1b-497f-866c-8df5d6cc05a7"
                },
                "resourceType": "Condition"
            },
            "request": {
                "method": "POST",
                "url": "Condition"
            }
        }
    ]
}
EOF
output 200

Enriched condition

The response from the service is a bundle with the enriched condition.

cat /tmp/output.json | jq

Returned Bundle
{
  "id": "abc",
  "entry": [
    {
      "fullUrl": "urn:uuid:7ea4903e-e14a-4407-8e37-8eae239d964d",
      "request": {
        "method": "POST",
        "url": "Condition"
      },
      "resource": {
        "id": "abcefg-1234567890",
        "meta": {
          "extension": [
            {
              "extension": [
                {
                  "url": "http://ibm.com/fhir/cdm/StructureDefinition/insight-id",
                  "valueIdentifier": {
                    "system": "urn:alvearie.io/health_patterns/services/nlp_insights/acd",
                    "value": "53958b4f7cef2dec63f88ff266b1e24bf95d3f12a32e88f7ad764bdb"
                  }
                },
                {
                  "url": "http://ibm.com/fhir/cdm/StructureDefinition/path",
                  "valueString": "Condition.code.coding"
                },
                {
                  "extension": [
                    {
                      "url": "http://ibm.com/fhir/cdm/StructureDefinition/reference",
                      "valueReference": {
                        "reference": "urn:uuid:7ea4903e-e14a-4407-8e37-8eae239d964d"
                      }
                    },
                    {
                      "url": "http://ibm.com/fhir/cdm/StructureDefinition/reference-path",
                      "valueString": "Condition.code.text"
                    },
                    {
                      "url": "http://ibm.com/fhir/cdm/StructureDefinition/evaluated-output",
                      "valueAttachment": {
                        "contentType": "application/json",
                        "data": "eyJhdHRyaWJ1dGVWYWx1ZXMiOiBbeyJiZWdpbiI6IDAsICJlbmQiOiAyMSwgImNvdmVyZWRUZXh0IjogIm15b2NhcmRpYWwgaW5mYXJjdGlvbiIsICJuZWdhdGVkIjogZmFsc2UsICJwcmVmZXJyZWROYW1lIjogIm15b2NhcmRpYWwgaW5mYXJjdGlvbiIsICJ2YWx1ZXMiOiBbeyJ2YWx1ZSI6ICJteW9jYXJkaWFsIGluZmFyY3Rpb24ifV0sICJzb3VyY2UiOiAiQ2xpbmljYWwgSW5zaWdodHMgLSBBdHRyaWJ1dGVzIiwgInNvdXJjZVZlcnNpb24iOiAidjEuMCIsICJjb25jZXB0IjogeyJ1aWQiOiA1fSwgIm5hbWUiOiAiRGlhZ25vc2lzIiwgImljZDlDb2RlIjogIjQxMC45MCIsICJpY2QxMENvZGUiOiAiSTIxLjkiLCAic25vbWVkQ29uY2VwdElkIjogIjIyMjk4MDA2IiwgImRpc2FtYmlndWF0aW9uRGF0YSI6IHsidmFsaWRpdHkiOiAiVkFMSUQifSwgImluc2lnaHRNb2RlbERhdGEiOiB7ImRpYWdub3NpcyI6IHsidXNhZ2UiOiB7ImV4cGxpY2l0U2NvcmUiOiAwLjkxNywgInBhdGllbnRSZXBvcnRlZFNjb3JlIjogMC4wMDgsICJkaXNjdXNzZWRTY29yZSI6IDAuMDc1fSwgInN1c3BlY3RlZFNjb3JlIjogMC4wOTIsICJzeW1wdG9tU2NvcmUiOiAwLjAsICJ0cmF1bWFTY29yZSI6IDAuMCwgImZhbWlseUhpc3RvcnlTY29yZSI6IDAuMDAzfX0sICJjY3NDb2RlIjogIjEwMCIsICJoY2NDb2RlIjogIjg2In1dLCAiY29uY2VwdHMiOiBbeyJ0eXBlIjogInVtbHMuRmluZGluZyIsICJiZWdpbiI6IDAsICJlbmQiOiAyMSwgImNvdmVyZWRUZXh0IjogIm15b2NhcmRpYWwgaW5mYXJjdGlvbiIsICJuZWdhdGVkIjogZmFsc2UsICJjdWkiOiAiQzQ1NTI5NTkiLCAicHJlZmVycmVkTmFtZSI6ICJNeW9jYXJkaWFsIEluZmFyY3Rpb24sIENUQ0FFIiwgInNlbWFudGljVHlwZSI6ICJmbmRnIiwgInNvdXJjZSI6ICJ1bWxzIiwgInNvdXJjZVZlcnNpb24iOiAiMjAyMEFBIiwgImRpc2FtYmlndWF0aW9uRGF0YSI6IHsidmFsaWRpdHkiOiAiTk9fREVDSVNJT04ifSwgIm5jaUNvZGUiOiAiQzE0MzY5MSIsICJ2b2NhYnMiOiAiTVRILE5DSV9DVENBRV81LE5DSSJ9LCB7InR5cGUiOiAidW1scy5MYWJvcmF0b3J5T3JUZXN0UmVzdWx0IiwgInVpZCI6IDMsICJiZWdpbiI6IDAsICJlbmQiOiAyMSwgImNvdmVyZWRUZXh0IjogIm15b2NhcmRpYWwgaW5mYXJjdGlvbiIsICJuZWdhdGVkIjogZmFsc2UsICJjdWkiOiAiQzA0Mjg5NTMiLCAicHJlZmVycmVkTmFtZSI6ICJFbGVjdHJvY2FyZGlvZ3JhbTogbXlvY2FyZGlhbCBpbmZhcmN0aW9uIChmaW5kaW5nKSIsICJzZW1hbnRpY1R5cGUiOiAibGJ0ciIsICJzb3VyY2UiOiAidW1scyIsICJzb3VyY2VWZXJzaW9uIjogIjIwMjBBQSIsICJkaXNhbWJpZ3VhdGlvbkRhdGEiOiB7InZhbGlkaXR5IjogIklOVkFMSUQifSwgImljZDEwQ29kZSI6ICJJMjEuNCxJMjEuMjksSTIxLjA5LEkyMS4xOSxSOTQuMzEsSTI1LjIsSTIxLjkiLCAibmNpQ29kZSI6ICJDMTAxNTg5IiwgInNub21lZENvbmNlcHRJZCI6ICIxNjQ4NjUwMDUiLCAidm9jYWJzIjogIkNIVixNVEgsTkNJX0NESVNDLE5DSSxTTk9NRURDVF9VUyJ9LCB7InR5cGUiOiAidW1scy5EaXNlYXNlT3JTeW5kcm9tZSIsICJ1aWQiOiAyLCAiYmVnaW4iOiAwLCAiZW5kIjogMjEsICJjb3ZlcmVkVGV4dCI6ICJteW9jYXJkaWFsIGluZmFyY3Rpb24iLCAibmVnYXRlZCI6IGZhbHNlLCAiY3VpIjogIkMwMDI3MDUxIiwgInByZWZlcnJlZE5hbWUiOiAiTXlvY2FyZGlhbCBJbmZhcmN0aW9uIiwgInNlbWFudGljVHlwZSI6ICJkc3luIiwgInNvdXJjZSI6ICJ1bWxzIiwgInNvdXJjZVZlcnNpb24iOiAiMjAyMEFBIiwgImRpc2FtYmlndWF0aW9uRGF0YSI6IHsidmFsaWRpdHkiOiAiTk9fREVDSVNJT04ifSwgImljZDEwQ29kZSI6ICJJMjEuOSIsICJuY2lDb2RlIjogIkMyNzk5NiIsICJzbm9tZWRDb25jZXB0SWQiOiAiMjIyOTgwMDYiLCAibWVzaElkIjogIk0wMDE0MzQwIiwgImxvaW5jSWQiOiAiTVRIVTAzNTU1MSxMQTE0Mjc0LTcsTFA5ODg4NC03LExBMTYyODYtOSIsICJ2b2NhYnMiOiAiTkNJX05JQ0hELE1USCxMTkMsQ1NQLE1TSCxDU1QsSFBPLE9NSU0sTkNJX0NUQ0FFLENPU1RBUixBSVIsQ0hWLE5DSV9GREEsTUVETElORVBMVVMsTkNJLExDSF9OVyxBT0QsU05PTUVEQ1RfVVMsRFhQIiwgImluc2lnaHRNb2RlbERhdGEiOiB7ImRpYWdub3NpcyI6IHsidXNhZ2UiOiB7ImV4cGxpY2l0U2NvcmUiOiAwLjkxNywgInBhdGllbnRSZXBvcnRlZFNjb3JlIjogMC4wMDgsICJkaXNjdXNzZWRTY29yZSI6IDAuMDc1fSwgInN1c3BlY3RlZFNjb3JlIjogMC4wOTIsICJzeW1wdG9tU2NvcmUiOiAwLjAsICJ0cmF1bWFTY29yZSI6IDAuMCwgImZhbWlseUhpc3RvcnlTY29yZSI6IDAuMDAzfX19LCB7InR5cGUiOiAiSUNEaWFnbm9zaXMiLCAiYmVnaW4iOiAwLCAiZW5kIjogMjEsICJjb3ZlcmVkVGV4dCI6ICJteW9jYXJkaWFsIGluZmFyY3Rpb24iLCAibmVnYXRlZCI6IGZhbHNlLCAiY3VpIjogIkMwMDI3MDUxIiwgInByZWZlcnJlZE5hbWUiOiAiTXlvY2FyZGlhbCBJbmZhcmN0aW9uIiwgInNvdXJjZSI6ICJDbGluaWNhbCBJbnNpZ2h0cyAtIERlcml2ZWQgQ29uY2VwdHMiLCAic291cmNlVmVyc2lvbiI6ICJ2MS4wIiwgImRpc2FtYmlndWF0aW9uRGF0YSI6IHsidmFsaWRpdHkiOiAiVkFMSUQifSwgImljZDEwQ29kZSI6ICJJMjEuOSIsICJuY2lDb2RlIjogIkMyNzk5NiIsICJzbm9tZWRDb25jZXB0SWQiOiAiMjIyOTgwMDYiLCAibWVzaElkIjogIk0wMDE0MzQwIiwgImxvaW5jSWQiOiAiTVRIVTAzNTU1MSxMQTE0Mjc0LTcsTFA5ODg4NC03LExBMTYyODYtOSIsICJpbnNpZ2h0TW9kZWxEYXRhIjogeyJkaWFnbm9zaXMiOiB7InVzYWdlIjogeyJleHBsaWNpdFNjb3JlIjogMC45MTcsICJwYXRpZW50UmVwb3J0ZWRTY29yZSI6IDAuMDA4LCAiZGlzY3Vzc2VkU2NvcmUiOiAwLjA3NX0sICJzdXNwZWN0ZWRTY29yZSI6IDAuMDkyLCAic3ltcHRvbVNjb3JlIjogMC4wLCAidHJhdW1hU2NvcmUiOiAwLjAsICJmYW1pbHlIaXN0b3J5U2NvcmUiOiAwLjAwM319LCAicnVsZUlkIjogIjY5OGYyYjE5LTI3YjYtNGRhYi05MTUwLTdkN2VmM2IwM2E1YyIsICJkZXJpdmVkRnJvbSI6IFt7InVpZCI6IDJ9XX0sIHsidHlwZSI6ICJJQ05vcm1hbGl0eSIsICJiZWdpbiI6IDAsICJlbmQiOiAyMSwgImNvdmVyZWRUZXh0IjogIm15b2NhcmRpYWwgaW5mYXJjdGlvbiIsICJuZWdhdGVkIjogZmFsc2UsICJjdWkiOiAiQzA0Mjg5NTMiLCAicHJlZmVycmVkTmFtZSI6ICJFbGVjdHJvY2FyZGlvZ3JhbTogbXlvY2FyZGlhbCBpbmZhcmN0aW9uIChmaW5kaW5nKSIsICJzb3VyY2UiOiAiQ2xpbmljYWwgSW5zaWdodHMgLSBEZXJpdmVkIENvbmNlcHRzIiwgInNvdXJjZVZlcnNpb24iOiAidjEuMCIsICJkaXNhbWJpZ3VhdGlvbkRhdGEiOiB7InZhbGlkaXR5IjogIklOVkFMSUQifSwgInJ1bGVJZCI6ICJjMWU4ZDdkNC03ZDM2LTQyM2ItYjM5ZC00ZWJiNWViNjViMGMiLCAiZGVyaXZlZEZyb20iOiBbeyJ1aWQiOiAzfV19XSwgIlN5bXB0b21EaXNlYXNlSW5kIjogW3sidHlwZSI6ICJhY2kuU3ltcHRvbURpc2Vhc2VJbmQiLCAidWlkIjogNSwgImJlZ2luIjogMCwgImVuZCI6IDIxLCAiY292ZXJlZFRleHQiOiAibXlvY2FyZGlhbCBpbmZhcmN0aW9uIiwgIm5lZ2F0ZWQiOiBmYWxzZSwgImN1aSI6ICJDMDAyNzA1MSIsICJpY2QxMENvZGUiOiAiSTIxLjkiLCAibW9kYWxpdHkiOiAicG9zaXRpdmUiLCAic3ltcHRvbURpc2Vhc2VTdXJmYWNlRm9ybSI6ICJteW9jYXJkaWFsIGluZmFyY3Rpb24iLCAic25vbWVkQ29uY2VwdElkIjogIjIyMjk4MDA2IiwgImNjc0NvZGUiOiAiMTAwIiwgInN5bXB0b21EaXNlYXNlTm9ybWFsaXplZE5hbWUiOiAibXlvY2FyZGlhbCBpbmZhcmN0aW9uIiwgImljZDlDb2RlIjogIjQxMC45MCIsICJoY2NDb2RlIjogIjg2IiwgImRpc2FtYmlndWF0aW9uRGF0YSI6IHsidmFsaWRpdHkiOiAiVkFMSUQifSwgImluc2lnaHRNb2RlbERhdGEiOiB7ImRpYWdub3NpcyI6IHsidXNhZ2UiOiB7ImV4cGxpY2l0U2NvcmUiOiAwLjkxNywgInBhdGllbnRSZXBvcnRlZFNjb3JlIjogMC4wMDgsICJkaXNjdXNzZWRTY29yZSI6IDAuMDc1fSwgInN1c3BlY3RlZFNjb3JlIjogMC4wOTIsICJzeW1wdG9tU2NvcmUiOiAwLjAsICJ0cmF1bWFTY29yZSI6IDAuMCwgImZhbWlseUhpc3RvcnlTY29yZSI6IDAuMDAzfX19XSwgInNwZWxsQ29ycmVjdGVkVGV4dCI6IFt7ImNvcnJlY3RlZFRleHQiOiAibXlvY2FyZGlhbCBpbmZhcmN0aW9uIn1dfQ=="
                      }
                    }
                  ],
                  "url": "http://ibm.com/fhir/cdm/StructureDefinition/insight-detail"
                }
              ],
              "url": "http://ibm.com/fhir/cdm/StructureDefinition/insight"
            }
          ]
        },
        "code": {
          "coding": [
            {
              "extension": [
                {
                  "extension": [
                    {
                      "url": "http://ibm.com/fhir/cdm/StructureDefinition/insight-id",
                      "valueIdentifier": {
                        "system": "urn:alvearie.io/health_patterns/services/nlp_insights/acd",
                        "value": "53958b4f7cef2dec63f88ff266b1e24bf95d3f12a32e88f7ad764bdb"
                      }
                    },
                    {
                      "url": "http://ibm.com/fhir/cdm/StructureDefinition/category",
                      "valueCodeableConcept": {
                        "coding": [
                          {
                            "code": "natural-language-processing",
                            "display": "NLP",
                            "system": "http://ibm.com/fhir/cdm/CodeSystem/insight-category-code-system"
                          }
                        ],
                        "text": "NLP"
                      }
                    }
                  ],
                  "url": "http://ibm.com/fhir/cdm/StructureDefinition/insight-summary"
                }
              ],
              "code": "C0027051",
              "display": "myocardial infarction",
              "system": "http://terminology.hl7.org/CodeSystem/umls"
            },
            {
              "extension": [
                {
                  "extension": [
                    {
                      "url": "http://ibm.com/fhir/cdm/StructureDefinition/insight-id",
                      "valueIdentifier": {
                        "system": "urn:alvearie.io/health_patterns/services/nlp_insights/acd",
                        "value": "53958b4f7cef2dec63f88ff266b1e24bf95d3f12a32e88f7ad764bdb"
                      }
                    },
                    {
                      "url": "http://ibm.com/fhir/cdm/StructureDefinition/category",
                      "valueCodeableConcept": {
                        "coding": [
                          {
                            "code": "natural-language-processing",
                            "display": "NLP",
                            "system": "http://ibm.com/fhir/cdm/CodeSystem/insight-category-code-system"
                          }
                        ],
                        "text": "NLP"
                      }
                    }
                  ],
                  "url": "http://ibm.com/fhir/cdm/StructureDefinition/insight-summary"
                }
              ],
              "code": "22298006",
              "system": "http://snomed.info/sct"
            },
            {
              "extension": [
                {
                  "extension": [
                    {
                      "url": "http://ibm.com/fhir/cdm/StructureDefinition/insight-id",
                      "valueIdentifier": {
                        "system": "urn:alvearie.io/health_patterns/services/nlp_insights/acd",
                        "value": "53958b4f7cef2dec63f88ff266b1e24bf95d3f12a32e88f7ad764bdb"
                      }
                    },
                    {
                      "url": "http://ibm.com/fhir/cdm/StructureDefinition/category",
                      "valueCodeableConcept": {
                        "coding": [
                          {
                            "code": "natural-language-processing",
                            "display": "NLP",
                            "system": "http://ibm.com/fhir/cdm/CodeSystem/insight-category-code-system"
                          }
                        ],
                        "text": "NLP"
                      }
                    }
                  ],
                  "url": "http://ibm.com/fhir/cdm/StructureDefinition/insight-summary"
                }
              ],
              "code": "410.90",
              "system": "http://hl7.org/fhir/sid/icd-9-cm"
            },
            {
              "extension": [
                {
                  "extension": [
                    {
                      "url": "http://ibm.com/fhir/cdm/StructureDefinition/insight-id",
                      "valueIdentifier": {
                        "system": "urn:alvearie.io/health_patterns/services/nlp_insights/acd",
                        "value": "53958b4f7cef2dec63f88ff266b1e24bf95d3f12a32e88f7ad764bdb"
                      }
                    },
                    {
                      "url": "http://ibm.com/fhir/cdm/StructureDefinition/category",
                      "valueCodeableConcept": {
                        "coding": [
                          {
                            "code": "natural-language-processing",
                            "display": "NLP",
                            "system": "http://ibm.com/fhir/cdm/CodeSystem/insight-category-code-system"
                          }
                        ],
                        "text": "NLP"
                      }
                    }
                  ],
                  "url": "http://ibm.com/fhir/cdm/StructureDefinition/insight-summary"
                }
              ],
              "code": "I21.9",
              "system": "http://hl7.org/fhir/sid/icd-10-cm"
            }
          ],
          "text": "myocardial infarction"
        },
        "subject": {
          "reference": "Patient/97b51b8d-1d1b-497f-866c-8df5d6cc05a7"
        },
        "resourceType": "Condition"
      }
    }
  ],
  "type": "transaction",
  "resourceType": "Bundle"
}

Condition derived codes

ACD understands a wide variety of standard code systems. As a result SNOMED, ICD-9 and ICD-10 coding values are included in the condition, in addition to the UMLS concept id.

System Code Display
http://terminology.hl7.org/CodeSystem/umls C0027051 myocardial infarction
http://snomed.info/sct 22298006
http://hl7.org/fhir/sid/icd-9-cm 410.90
http://hl7.org/fhir/sid/icd-10-cm I21.9

Enrich an allergy intolerance

In this example, a bundle with two allergy intolerance resources is sent to the nlp insights server. The first has a code for a food allergy with text "peanut", and the second resource has a code for a medication allergy with text "amoxicillin".

Both resources contain only text and do not contain any codes for the allergy. The nlp-insights service will enrich the resources by adding UMLS, SNOMED, ICD-9 and ICD-10 codes.

curl  -w "\n%{http_code}\n" -s -o /tmp/output.json -XPOST localhost:5000/discoverInsights  -H 'Content-Type: application/json; charset=utf-8' --data-binary @- << EOF
{
    "resourceType": "Bundle",
    "id": "abc",
    "type": "transaction",
    "entry": [
        {
            "resource": {
                "id": "pnt123",
                "code": {
                    "text": "peanut"
                },
                "patient": {
                    "reference": "Patient/97b51b8d-1d1b-497f-866c-8df5d6cc05a7"
                },
                "resourceType": "AllergyIntolerance"
            },
            "request": {
                "method": "POST",
                "url": "Condition"
            }
        },
        {
            "resource": {
                "id": "amx123",
                "code": {
                    "text": "amoxicillin"
                },
                "patient": {
                    "reference": "Patient/97b51b8d-1d1b-497f-866c-8df5d6cc05a7"
                },
                "resourceType": "AllergyIntolerance"
            },
            "request": {
                "method": "POST",
                "url": "Condition"
            }
        }

    ]
}
EOF
output 200

A bundle is returned that contains the enriched allergy intolerance resources. Each resource now includes the additional derived code values.

cat /tmp/output.json | jq

Returned bundle
{
  "id": "abc",
  "entry": [
    {
      "fullUrl": "urn:uuid:12f769ca-81a8-4482-a07a-c98260b4991b",
      "request": {
        "method": "POST",
        "url": "Condition"
      },
      "resource": {
        "id": "pnt123",
        "meta": {
          "extension": [
            {
              "extension": [
                {
                  "url": "http://ibm.com/fhir/cdm/StructureDefinition/insight-id",
                  "valueIdentifier": {
                    "system": "urn:alvearie.io/health_patterns/services/nlp_insights/acd",
                    "value": "33376613c387908fbcd8ffafca135a19d84efef2bd195e9750d4bd41"
                  }
                },
                {
                  "url": "http://ibm.com/fhir/cdm/StructureDefinition/path",
                  "valueString": "AllergyIntolerance.code.coding"
                },
                {
                  "extension": [
                    {
                      "url": "http://ibm.com/fhir/cdm/StructureDefinition/reference",
                      "valueReference": {
                        "reference": "urn:uuid:12f769ca-81a8-4482-a07a-c98260b4991b"
                      }
                    },
                    {
                      "url": "http://ibm.com/fhir/cdm/StructureDefinition/reference-path",
                      "valueString": "AllergyIntolerance.code.text"
                    },
                    {
                      "url": "http://ibm.com/fhir/cdm/StructureDefinition/evaluated-output",
                      "valueAttachment": {
                        "contentType": "application/json",
                        "data": "eyJhdHRyaWJ1dGVWYWx1ZXMiOiBbeyJiZWdpbiI6IDAsICJlbmQiOiAxNCwgImNvdmVyZWRUZXh0IjogInBlYW51dCBhbGxlcmd5IiwgIm5lZ2F0ZWQiOiBmYWxzZSwgInByZWZlcnJlZE5hbWUiOiAiYWxsZXJneSB0byBwZWFudXQiLCAidmFsdWVzIjogW3sidmFsdWUiOiAiYWxsZXJneSB0byBwZWFudXQifV0sICJzb3VyY2UiOiAiQ2xpbmljYWwgSW5zaWdodHMgLSBBdHRyaWJ1dGVzIiwgInNvdXJjZVZlcnNpb24iOiAidjEuMCIsICJjb25jZXB0IjogeyJ1aWQiOiA0fSwgIm5hbWUiOiAiRGlhZ25vc2lzIiwgImljZDlDb2RlIjogIjk5NS4zIiwgImljZDEwQ29kZSI6ICJaOTEuMDEwLFo5MS4wIiwgInNub21lZENvbmNlcHRJZCI6ICI5MTkzNTAwOSIsICJkaXNhbWJpZ3VhdGlvbkRhdGEiOiB7InZhbGlkaXR5IjogIlZBTElEIn0sICJpbnNpZ2h0TW9kZWxEYXRhIjogeyJkaWFnbm9zaXMiOiB7InVzYWdlIjogeyJleHBsaWNpdFNjb3JlIjogMC44OTYsICJwYXRpZW50UmVwb3J0ZWRTY29yZSI6IDAuMDA5LCAiZGlzY3Vzc2VkU2NvcmUiOiAwLjA5NX0sICJzdXNwZWN0ZWRTY29yZSI6IDAuMTA5LCAic3ltcHRvbVNjb3JlIjogMC4wMDEsICJ0cmF1bWFTY29yZSI6IDAuMCwgImZhbWlseUhpc3RvcnlTY29yZSI6IDAuMDAzfX0sICJjY3NDb2RlIjogIjI1MyJ9XSwgImNvbmNlcHRzIjogW3sidHlwZSI6ICJ1bWxzLkRpc2Vhc2VPclN5bmRyb21lIiwgInVpZCI6IDIsICJiZWdpbiI6IDAsICJlbmQiOiAxNCwgImNvdmVyZWRUZXh0IjogInBlYW51dCBhbGxlcmd5IiwgIm5lZ2F0ZWQiOiBmYWxzZSwgImN1aSI6ICJDMDU1OTQ3MCIsICJwcmVmZXJyZWROYW1lIjogIkFsbGVyZ3kgdG8gcGVhbnV0cyIsICJzZW1hbnRpY1R5cGUiOiAiZHN5biIsICJzb3VyY2UiOiAidW1scyIsICJzb3VyY2VWZXJzaW9uIjogIjIwMjBBQSIsICJkaXNhbWJpZ3VhdGlvbkRhdGEiOiB7InZhbGlkaXR5IjogIk5PX0RFQ0lTSU9OIn0sICJpY2Q5Q29kZSI6ICI5OTUuMyIsICJpY2QxMENvZGUiOiAiWjkxLjAsWjkxLjAxMCIsICJzbm9tZWRDb25jZXB0SWQiOiAiOTE5MzUwMDkiLCAibWVzaElkIjogIk0wMzUxODM2IiwgInZvY2FicyI6ICJNVEgsQ0hWLE1TSCxNRURMSU5FUExVUyxTTk9NRURDVF9VUyIsICJpbnNpZ2h0TW9kZWxEYXRhIjogeyJkaWFnbm9zaXMiOiB7InVzYWdlIjogeyJleHBsaWNpdFNjb3JlIjogMC44OTYsICJwYXRpZW50UmVwb3J0ZWRTY29yZSI6IDAuMDA5LCAiZGlzY3Vzc2VkU2NvcmUiOiAwLjA5NX0sICJzdXNwZWN0ZWRTY29yZSI6IDAuMTA5LCAic3ltcHRvbVNjb3JlIjogMC4wMDEsICJ0cmF1bWFTY29yZSI6IDAuMCwgImZhbWlseUhpc3RvcnlTY29yZSI6IDAuMDAzfX19LCB7InR5cGUiOiAiSUNEaWFnbm9zaXMiLCAiYmVnaW4iOiAwLCAiZW5kIjogMTQsICJjb3ZlcmVkVGV4dCI6ICJwZWFudXQgYWxsZXJneSIsICJuZWdhdGVkIjogZmFsc2UsICJjdWkiOiAiQzA1NTk0NzAiLCAicHJlZmVycmVkTmFtZSI6ICJBbGxlcmd5IHRvIHBlYW51dHMiLCAic291cmNlIjogIkNsaW5pY2FsIEluc2lnaHRzIC0gRGVyaXZlZCBDb25jZXB0cyIsICJzb3VyY2VWZXJzaW9uIjogInYxLjAiLCAiZGlzYW1iaWd1YXRpb25EYXRhIjogeyJ2YWxpZGl0eSI6ICJWQUxJRCJ9LCAiaWNkOUNvZGUiOiAiOTk1LjMiLCAiaWNkMTBDb2RlIjogIlo5MS4wLFo5MS4wMTAiLCAic25vbWVkQ29uY2VwdElkIjogIjkxOTM1MDA5IiwgIm1lc2hJZCI6ICJNMDM1MTgzNiIsICJpbnNpZ2h0TW9kZWxEYXRhIjogeyJkaWFnbm9zaXMiOiB7InVzYWdlIjogeyJleHBsaWNpdFNjb3JlIjogMC44OTYsICJwYXRpZW50UmVwb3J0ZWRTY29yZSI6IDAuMDA5LCAiZGlzY3Vzc2VkU2NvcmUiOiAwLjA5NX0sICJzdXNwZWN0ZWRTY29yZSI6IDAuMTA5LCAic3ltcHRvbVNjb3JlIjogMC4wMDEsICJ0cmF1bWFTY29yZSI6IDAuMCwgImZhbWlseUhpc3RvcnlTY29yZSI6IDAuMDAzfX0sICJydWxlSWQiOiAiNjk4ZjJiMTktMjdiNi00ZGFiLTkxNTAtN2Q3ZWYzYjAzYTVjIiwgImRlcml2ZWRGcm9tIjogW3sidWlkIjogMn1dfV0sICJTeW1wdG9tRGlzZWFzZUluZCI6IFt7InR5cGUiOiAiYWNpLlN5bXB0b21EaXNlYXNlSW5kIiwgInVpZCI6IDQsICJiZWdpbiI6IDAsICJlbmQiOiAxNCwgImNvdmVyZWRUZXh0IjogInBlYW51dCBhbGxlcmd5IiwgIm5lZ2F0ZWQiOiBmYWxzZSwgImN1aSI6ICJDMDU1OTQ3MCIsICJpY2QxMENvZGUiOiAiWjkxLjAxMCxaOTEuMCIsICJtb2RhbGl0eSI6ICJwb3NpdGl2ZSIsICJzeW1wdG9tRGlzZWFzZVN1cmZhY2VGb3JtIjogInBlYW51dCBhbGxlcmd5IiwgInNub21lZENvbmNlcHRJZCI6ICI5MTkzNTAwOSIsICJjY3NDb2RlIjogIjI1MyIsICJzeW1wdG9tRGlzZWFzZU5vcm1hbGl6ZWROYW1lIjogImFsbGVyZ3kgdG8gcGVhbnV0IiwgImljZDlDb2RlIjogIjk5NS4zIiwgImRpc2FtYmlndWF0aW9uRGF0YSI6IHsidmFsaWRpdHkiOiAiVkFMSUQifSwgImluc2lnaHRNb2RlbERhdGEiOiB7ImRpYWdub3NpcyI6IHsidXNhZ2UiOiB7ImV4cGxpY2l0U2NvcmUiOiAwLjg5NiwgInBhdGllbnRSZXBvcnRlZFNjb3JlIjogMC4wMDksICJkaXNjdXNzZWRTY29yZSI6IDAuMDk1fSwgInN1c3BlY3RlZFNjb3JlIjogMC4xMDksICJzeW1wdG9tU2NvcmUiOiAwLjAwMSwgInRyYXVtYVNjb3JlIjogMC4wLCAiZmFtaWx5SGlzdG9yeVNjb3JlIjogMC4wMDN9fX1dLCAic3BlbGxDb3JyZWN0ZWRUZXh0IjogW3siY29ycmVjdGVkVGV4dCI6ICJwZWFudXQgYWxsZXJneSJ9XX0="
                      }
                    }
                  ],
                  "url": "http://ibm.com/fhir/cdm/StructureDefinition/insight-detail"
                }
              ],
              "url": "http://ibm.com/fhir/cdm/StructureDefinition/insight"
            }
          ]
        },
        "code": {
          "coding": [
            {
              "extension": [
                {
                  "extension": [
                    {
                      "url": "http://ibm.com/fhir/cdm/StructureDefinition/insight-id",
                      "valueIdentifier": {
                        "system": "urn:alvearie.io/health_patterns/services/nlp_insights/acd",
                        "value": "33376613c387908fbcd8ffafca135a19d84efef2bd195e9750d4bd41"
                      }
                    },
                    {
                      "url": "http://ibm.com/fhir/cdm/StructureDefinition/category",
                      "valueCodeableConcept": {
                        "coding": [
                          {
                            "code": "natural-language-processing",
                            "display": "NLP",
                            "system": "http://ibm.com/fhir/cdm/CodeSystem/insight-category-code-system"
                          }
                        ],
                        "text": "NLP"
                      }
                    }
                  ],
                  "url": "http://ibm.com/fhir/cdm/StructureDefinition/insight-summary"
                }
              ],
              "code": "C0559470",
              "display": "allergy to peanut",
              "system": "http://terminology.hl7.org/CodeSystem/umls"
            },
            {
              "extension": [
                {
                  "extension": [
                    {
                      "url": "http://ibm.com/fhir/cdm/StructureDefinition/insight-id",
                      "valueIdentifier": {
                        "system": "urn:alvearie.io/health_patterns/services/nlp_insights/acd",
                        "value": "33376613c387908fbcd8ffafca135a19d84efef2bd195e9750d4bd41"
                      }
                    },
                    {
                      "url": "http://ibm.com/fhir/cdm/StructureDefinition/category",
                      "valueCodeableConcept": {
                        "coding": [
                          {
                            "code": "natural-language-processing",
                            "display": "NLP",
                            "system": "http://ibm.com/fhir/cdm/CodeSystem/insight-category-code-system"
                          }
                        ],
                        "text": "NLP"
                      }
                    }
                  ],
                  "url": "http://ibm.com/fhir/cdm/StructureDefinition/insight-summary"
                }
              ],
              "code": "91935009",
              "system": "http://snomed.info/sct"
            },
            {
              "extension": [
                {
                  "extension": [
                    {
                      "url": "http://ibm.com/fhir/cdm/StructureDefinition/insight-id",
                      "valueIdentifier": {
                        "system": "urn:alvearie.io/health_patterns/services/nlp_insights/acd",
                        "value": "33376613c387908fbcd8ffafca135a19d84efef2bd195e9750d4bd41"
                      }
                    },
                    {
                      "url": "http://ibm.com/fhir/cdm/StructureDefinition/category",
                      "valueCodeableConcept": {
                        "coding": [
                          {
                            "code": "natural-language-processing",
                            "display": "NLP",
                            "system": "http://ibm.com/fhir/cdm/CodeSystem/insight-category-code-system"
                          }
                        ],
                        "text": "NLP"
                      }
                    }
                  ],
                  "url": "http://ibm.com/fhir/cdm/StructureDefinition/insight-summary"
                }
              ],
              "code": "995.3",
              "system": "http://hl7.org/fhir/sid/icd-9-cm"
            },
            {
              "extension": [
                {
                  "extension": [
                    {
                      "url": "http://ibm.com/fhir/cdm/StructureDefinition/insight-id",
                      "valueIdentifier": {
                        "system": "urn:alvearie.io/health_patterns/services/nlp_insights/acd",
                        "value": "33376613c387908fbcd8ffafca135a19d84efef2bd195e9750d4bd41"
                      }
                    },
                    {
                      "url": "http://ibm.com/fhir/cdm/StructureDefinition/category",
                      "valueCodeableConcept": {
                        "coding": [
                          {
                            "code": "natural-language-processing",
                            "display": "NLP",
                            "system": "http://ibm.com/fhir/cdm/CodeSystem/insight-category-code-system"
                          }
                        ],
                        "text": "NLP"
                      }
                    }
                  ],
                  "url": "http://ibm.com/fhir/cdm/StructureDefinition/insight-summary"
                }
              ],
              "code": "Z91.010",
              "system": "http://hl7.org/fhir/sid/icd-10-cm"
            },
            {
              "extension": [
                {
                  "extension": [
                    {
                      "url": "http://ibm.com/fhir/cdm/StructureDefinition/insight-id",
                      "valueIdentifier": {
                        "system": "urn:alvearie.io/health_patterns/services/nlp_insights/acd",
                        "value": "33376613c387908fbcd8ffafca135a19d84efef2bd195e9750d4bd41"
                      }
                    },
                    {
                      "url": "http://ibm.com/fhir/cdm/StructureDefinition/category",
                      "valueCodeableConcept": {
                        "coding": [
                          {
                            "code": "natural-language-processing",
                            "display": "NLP",
                            "system": "http://ibm.com/fhir/cdm/CodeSystem/insight-category-code-system"
                          }
                        ],
                        "text": "NLP"
                      }
                    }
                  ],
                  "url": "http://ibm.com/fhir/cdm/StructureDefinition/insight-summary"
                }
              ],
              "code": "Z91.0",
              "system": "http://hl7.org/fhir/sid/icd-10-cm"
            }
          ],
          "text": "peanut"
        },
        "patient": {
          "reference": "Patient/97b51b8d-1d1b-497f-866c-8df5d6cc05a7"
        },
        "resourceType": "AllergyIntolerance"
      }
    },
    {
      "fullUrl": "urn:uuid:8ded6929-2c8f-4d0b-bb5f-e402924f407e",
      "request": {
        "method": "POST",
        "url": "Condition"
      },
      "resource": {
        "id": "amx123",
        "meta": {
          "extension": [
            {
              "extension": [
                {
                  "url": "http://ibm.com/fhir/cdm/StructureDefinition/insight-id",
                  "valueIdentifier": {
                    "system": "urn:alvearie.io/health_patterns/services/nlp_insights/acd",
                    "value": "56af15e63b156a13a88436e138c479f2801d758d339fff32a93b3de8"
                  }
                },
                {
                  "url": "http://ibm.com/fhir/cdm/StructureDefinition/path",
                  "valueString": "AllergyIntolerance.code.coding"
                },
                {
                  "extension": [
                    {
                      "url": "http://ibm.com/fhir/cdm/StructureDefinition/reference",
                      "valueReference": {
                        "reference": "urn:uuid:8ded6929-2c8f-4d0b-bb5f-e402924f407e"
                      }
                    },
                    {
                      "url": "http://ibm.com/fhir/cdm/StructureDefinition/reference-path",
                      "valueString": "AllergyIntolerance.code.text"
                    },
                    {
                      "url": "http://ibm.com/fhir/cdm/StructureDefinition/evaluated-output",
                      "valueAttachment": {
                        "contentType": "application/json",
                        "data": "eyJhdHRyaWJ1dGVWYWx1ZXMiOiBbeyJiZWdpbiI6IDAsICJlbmQiOiAxOSwgImNvdmVyZWRUZXh0IjogImFtb3hpY2lsbGluIGFsbGVyZ3kiLCAibmVnYXRlZCI6IGZhbHNlLCAicHJlZmVycmVkTmFtZSI6ICJhbGxlcmd5IHRvIGFtb3hpY2lsbGluIiwgInZhbHVlcyI6IFt7InZhbHVlIjogImFsbGVyZ3kgdG8gYW1veGljaWxsaW4ifV0sICJzb3VyY2UiOiAiQ2xpbmljYWwgSW5zaWdodHMgLSBBdHRyaWJ1dGVzIiwgInNvdXJjZVZlcnNpb24iOiAidjEuMCIsICJjb25jZXB0IjogeyJ1aWQiOiA0fSwgIm5hbWUiOiAiRGlhZ25vc2lzIiwgImljZDlDb2RlIjogIkU5MzAuMCw5OTUuMjciLCAiaWNkMTBDb2RlIjogIlo4OC4wIiwgInNub21lZENvbmNlcHRJZCI6ICIyOTQ1MDUwMDgiLCAiZGlzYW1iaWd1YXRpb25EYXRhIjogeyJ2YWxpZGl0eSI6ICJWQUxJRCJ9LCAiaW5zaWdodE1vZGVsRGF0YSI6IHsiZGlhZ25vc2lzIjogeyJ1c2FnZSI6IHsiZXhwbGljaXRTY29yZSI6IDAuOTE5LCAicGF0aWVudFJlcG9ydGVkU2NvcmUiOiAwLjAwNywgImRpc2N1c3NlZFNjb3JlIjogMC4wNzV9LCAic3VzcGVjdGVkU2NvcmUiOiAwLjA5NiwgInN5bXB0b21TY29yZSI6IDAuMDAxLCAidHJhdW1hU2NvcmUiOiAwLjAsICJmYW1pbHlIaXN0b3J5U2NvcmUiOiAwLjAwNH19LCAiY2NzQ29kZSI6ICIyNTMifV0sICJjb25jZXB0cyI6IFt7InR5cGUiOiAidW1scy5EaXNlYXNlT3JTeW5kcm9tZSIsICJ1aWQiOiAyLCAiYmVnaW4iOiAwLCAiZW5kIjogMTksICJjb3ZlcmVkVGV4dCI6ICJhbW94aWNpbGxpbiBhbGxlcmd5IiwgIm5lZ2F0ZWQiOiBmYWxzZSwgImN1aSI6ICJDMDU3MTQxNyIsICJwcmVmZXJyZWROYW1lIjogIkFsbGVyZ3kgdG8gYW1veGljaWxsaW4iLCAic2VtYW50aWNUeXBlIjogImRzeW4iLCAic291cmNlIjogInVtbHMiLCAic291cmNlVmVyc2lvbiI6ICIyMDIwQUEiLCAiZGlzYW1iaWd1YXRpb25EYXRhIjogeyJ2YWxpZGl0eSI6ICJOT19ERUNJU0lPTiJ9LCAiaWNkOUNvZGUiOiAiOTk1LjI3IiwgImljZDEwQ29kZSI6ICJaODguMCxaODguMSIsICJzbm9tZWRDb25jZXB0SWQiOiAiMjk0NTA1MDA4IiwgInZvY2FicyI6ICJDSFYsU05PTUVEQ1RfVVMiLCAiaW5zaWdodE1vZGVsRGF0YSI6IHsiZGlhZ25vc2lzIjogeyJ1c2FnZSI6IHsiZXhwbGljaXRTY29yZSI6IDAuOTE5LCAicGF0aWVudFJlcG9ydGVkU2NvcmUiOiAwLjAwNywgImRpc2N1c3NlZFNjb3JlIjogMC4wNzV9LCAic3VzcGVjdGVkU2NvcmUiOiAwLjA5NiwgInN5bXB0b21TY29yZSI6IDAuMDAxLCAidHJhdW1hU2NvcmUiOiAwLjAsICJmYW1pbHlIaXN0b3J5U2NvcmUiOiAwLjAwNH19fSwgeyJ0eXBlIjogIklDRGlhZ25vc2lzIiwgImJlZ2luIjogMCwgImVuZCI6IDE5LCAiY292ZXJlZFRleHQiOiAiYW1veGljaWxsaW4gYWxsZXJneSIsICJuZWdhdGVkIjogZmFsc2UsICJjdWkiOiAiQzA1NzE0MTciLCAicHJlZmVycmVkTmFtZSI6ICJBbGxlcmd5IHRvIGFtb3hpY2lsbGluIiwgInNvdXJjZSI6ICJDbGluaWNhbCBJbnNpZ2h0cyAtIERlcml2ZWQgQ29uY2VwdHMiLCAic291cmNlVmVyc2lvbiI6ICJ2MS4wIiwgImRpc2FtYmlndWF0aW9uRGF0YSI6IHsidmFsaWRpdHkiOiAiVkFMSUQifSwgImljZDlDb2RlIjogIjk5NS4yNyIsICJpY2QxMENvZGUiOiAiWjg4LjAsWjg4LjEiLCAic25vbWVkQ29uY2VwdElkIjogIjI5NDUwNTAwOCIsICJpbnNpZ2h0TW9kZWxEYXRhIjogeyJkaWFnbm9zaXMiOiB7InVzYWdlIjogeyJleHBsaWNpdFNjb3JlIjogMC45MTksICJwYXRpZW50UmVwb3J0ZWRTY29yZSI6IDAuMDA3LCAiZGlzY3Vzc2VkU2NvcmUiOiAwLjA3NX0sICJzdXNwZWN0ZWRTY29yZSI6IDAuMDk2LCAic3ltcHRvbVNjb3JlIjogMC4wMDEsICJ0cmF1bWFTY29yZSI6IDAuMCwgImZhbWlseUhpc3RvcnlTY29yZSI6IDAuMDA0fX0sICJydWxlSWQiOiAiNjk4ZjJiMTktMjdiNi00ZGFiLTkxNTAtN2Q3ZWYzYjAzYTVjIiwgImRlcml2ZWRGcm9tIjogW3sidWlkIjogMn1dfV0sICJNZWRpY2F0aW9uSW5kIjogW3sidHlwZSI6ICJhY2kuTWVkaWNhdGlvbkluZCIsICJiZWdpbiI6IDAsICJlbmQiOiAxMSwgImNvdmVyZWRUZXh0IjogImFtb3hpY2lsbGluIiwgIm5lZ2F0ZWQiOiBmYWxzZSwgImN1aSI6ICJDMDAwMjY0NSIsICJkcnVnIjogW3siY292ZXJlZFRleHQiOiAiYW1veGljaWxsaW4iLCAiY3VpIjogIkMwMDAyNjQ1IiwgImNvbXBsZXgiOiAiZmFsc2UiLCAiZW5kIjogMTEsICJ0eXBlIjogImFjaS5JbmRfRHJ1ZyIsICJuYW1lMSI6IFt7InJ4Tm9ybUlEIjogIjcyMyIsICJjb3ZlcmVkVGV4dCI6ICJhbW94aWNpbGxpbiIsICJjdWkiOiAiQzAwMDI2NDUiLCAiZHJ1Z1N1cmZhY2VGb3JtIjogImFtb3hpY2lsbGluIiwgImRydWdOb3JtYWxpemVkTmFtZSI6ICJhbW94aWNpbGxpbiIsICJlbmQiOiAxMSwgInR5cGUiOiAiYWNpLkRydWdOYW1lIiwgImJlZ2luIjogMH1dLCAiYmVnaW4iOiAwfV0sICJkaXNhbWJpZ3VhdGlvbkRhdGEiOiB7InZhbGlkaXR5IjogIklOVkFMSUQiLCAiY29tbWVudCI6ICJDbGluaWNhbCBJbnNpZ2h0czogVGhpcyBjb25jZXB0IHdhcyBzaG9ydGVyIHRoYW4gYW4gb3ZlcmxhcHBpbmcgY29uY2VwdC4ifX1dLCAiU3ltcHRvbURpc2Vhc2VJbmQiOiBbeyJ0eXBlIjogImFjaS5TeW1wdG9tRGlzZWFzZUluZCIsICJ1aWQiOiA0LCAiYmVnaW4iOiAwLCAiZW5kIjogMTksICJjb3ZlcmVkVGV4dCI6ICJhbW94aWNpbGxpbiBhbGxlcmd5IiwgIm5lZ2F0ZWQiOiBmYWxzZSwgImN1aSI6ICJDMDU3MTQxNyIsICJpY2QxMENvZGUiOiAiWjg4LjAiLCAibW9kYWxpdHkiOiAicG9zaXRpdmUiLCAic3ltcHRvbURpc2Vhc2VTdXJmYWNlRm9ybSI6ICJhbW94aWNpbGxpbiBhbGxlcmd5IiwgInNub21lZENvbmNlcHRJZCI6ICIyOTQ1MDUwMDgiLCAiY2NzQ29kZSI6ICIyNTMiLCAic3ltcHRvbURpc2Vhc2VOb3JtYWxpemVkTmFtZSI6ICJhbGxlcmd5IHRvIGFtb3hpY2lsbGluIiwgImljZDlDb2RlIjogIkU5MzAuMCw5OTUuMjciLCAiZGlzYW1iaWd1YXRpb25EYXRhIjogeyJ2YWxpZGl0eSI6ICJWQUxJRCJ9LCAiaW5zaWdodE1vZGVsRGF0YSI6IHsiZGlhZ25vc2lzIjogeyJ1c2FnZSI6IHsiZXhwbGljaXRTY29yZSI6IDAuOTE5LCAicGF0aWVudFJlcG9ydGVkU2NvcmUiOiAwLjAwNywgImRpc2N1c3NlZFNjb3JlIjogMC4wNzV9LCAic3VzcGVjdGVkU2NvcmUiOiAwLjA5NiwgInN5bXB0b21TY29yZSI6IDAuMDAxLCAidHJhdW1hU2NvcmUiOiAwLjAsICJmYW1pbHlIaXN0b3J5U2NvcmUiOiAwLjAwNH19fV0sICJzcGVsbENvcnJlY3RlZFRleHQiOiBbeyJjb3JyZWN0ZWRUZXh0IjogImFtb3hpY2lsbGluIGFsbGVyZ3kifV19"
                      }
                    }
                  ],
                  "url": "http://ibm.com/fhir/cdm/StructureDefinition/insight-detail"
                }
              ],
              "url": "http://ibm.com/fhir/cdm/StructureDefinition/insight"
            }
          ]
        },
        "code": {
          "coding": [
            {
              "extension": [
                {
                  "extension": [
                    {
                      "url": "http://ibm.com/fhir/cdm/StructureDefinition/insight-id",
                      "valueIdentifier": {
                        "system": "urn:alvearie.io/health_patterns/services/nlp_insights/acd",
                        "value": "56af15e63b156a13a88436e138c479f2801d758d339fff32a93b3de8"
                      }
                    },
                    {
                      "url": "http://ibm.com/fhir/cdm/StructureDefinition/category",
                      "valueCodeableConcept": {
                        "coding": [
                          {
                            "code": "natural-language-processing",
                            "display": "NLP",
                            "system": "http://ibm.com/fhir/cdm/CodeSystem/insight-category-code-system"
                          }
                        ],
                        "text": "NLP"
                      }
                    }
                  ],
                  "url": "http://ibm.com/fhir/cdm/StructureDefinition/insight-summary"
                }
              ],
              "code": "C0571417",
              "display": "allergy to amoxicillin",
              "system": "http://terminology.hl7.org/CodeSystem/umls"
            },
            {
              "extension": [
                {
                  "extension": [
                    {
                      "url": "http://ibm.com/fhir/cdm/StructureDefinition/insight-id",
                      "valueIdentifier": {
                        "system": "urn:alvearie.io/health_patterns/services/nlp_insights/acd",
                        "value": "56af15e63b156a13a88436e138c479f2801d758d339fff32a93b3de8"
                      }
                    },
                    {
                      "url": "http://ibm.com/fhir/cdm/StructureDefinition/category",
                      "valueCodeableConcept": {
                        "coding": [
                          {
                            "code": "natural-language-processing",
                            "display": "NLP",
                            "system": "http://ibm.com/fhir/cdm/CodeSystem/insight-category-code-system"
                          }
                        ],
                        "text": "NLP"
                      }
                    }
                  ],
                  "url": "http://ibm.com/fhir/cdm/StructureDefinition/insight-summary"
                }
              ],
              "code": "294505008",
              "system": "http://snomed.info/sct"
            },
            {
              "extension": [
                {
                  "extension": [
                    {
                      "url": "http://ibm.com/fhir/cdm/StructureDefinition/insight-id",
                      "valueIdentifier": {
                        "system": "urn:alvearie.io/health_patterns/services/nlp_insights/acd",
                        "value": "56af15e63b156a13a88436e138c479f2801d758d339fff32a93b3de8"
                      }
                    },
                    {
                      "url": "http://ibm.com/fhir/cdm/StructureDefinition/category",
                      "valueCodeableConcept": {
                        "coding": [
                          {
                            "code": "natural-language-processing",
                            "display": "NLP",
                            "system": "http://ibm.com/fhir/cdm/CodeSystem/insight-category-code-system"
                          }
                        ],
                        "text": "NLP"
                      }
                    }
                  ],
                  "url": "http://ibm.com/fhir/cdm/StructureDefinition/insight-summary"
                }
              ],
              "code": "E930.0",
              "system": "http://hl7.org/fhir/sid/icd-9-cm"
            },
            {
              "extension": [
                {
                  "extension": [
                    {
                      "url": "http://ibm.com/fhir/cdm/StructureDefinition/insight-id",
                      "valueIdentifier": {
                        "system": "urn:alvearie.io/health_patterns/services/nlp_insights/acd",
                        "value": "56af15e63b156a13a88436e138c479f2801d758d339fff32a93b3de8"
                      }
                    },
                    {
                      "url": "http://ibm.com/fhir/cdm/StructureDefinition/category",
                      "valueCodeableConcept": {
                        "coding": [
                          {
                            "code": "natural-language-processing",
                            "display": "NLP",
                            "system": "http://ibm.com/fhir/cdm/CodeSystem/insight-category-code-system"
                          }
                        ],
                        "text": "NLP"
                      }
                    }
                  ],
                  "url": "http://ibm.com/fhir/cdm/StructureDefinition/insight-summary"
                }
              ],
              "code": "995.27",
              "system": "http://hl7.org/fhir/sid/icd-9-cm"
            },
            {
              "extension": [
                {
                  "extension": [
                    {
                      "url": "http://ibm.com/fhir/cdm/StructureDefinition/insight-id",
                      "valueIdentifier": {
                        "system": "urn:alvearie.io/health_patterns/services/nlp_insights/acd",
                        "value": "56af15e63b156a13a88436e138c479f2801d758d339fff32a93b3de8"
                      }
                    },
                    {
                      "url": "http://ibm.com/fhir/cdm/StructureDefinition/category",
                      "valueCodeableConcept": {
                        "coding": [
                          {
                            "code": "natural-language-processing",
                            "display": "NLP",
                            "system": "http://ibm.com/fhir/cdm/CodeSystem/insight-category-code-system"
                          }
                        ],
                        "text": "NLP"
                      }
                    }
                  ],
                  "url": "http://ibm.com/fhir/cdm/StructureDefinition/insight-summary"
                }
              ],
              "code": "Z88.0",
              "system": "http://hl7.org/fhir/sid/icd-10-cm"
            }
          ],
          "text": "amoxicillin"
        },
        "patient": {
          "reference": "Patient/97b51b8d-1d1b-497f-866c-8df5d6cc05a7"
        },
        "resourceType": "AllergyIntolerance"
      }
    }
  ],
  "type": "transaction",
  "resourceType": "Bundle"
}

Allergy derived codes

The food allergy resource has been enriched with new codes.

System Code Display
http://terminology.hl7.org/CodeSystem/umls C0559470 allergy to peanut
http://snomed.info/sct 91935009
http://hl7.org/fhir/sid/icd-9-cm 995.3
http://hl7.org/fhir/sid/icd-10-cm Z91.010
http://hl7.org/fhir/sid/icd-10-cm Z91.0

In a similar way, the medication allergy resource has been enriched with new codes.

System Code Display
http://terminology.hl7.org/CodeSystem/umls C0571417 allergy to amoxicillin
http://snomed.info/sct 294505008
http://hl7.org/fhir/sid/icd-9-cm E930.0
http://hl7.org/fhir/sid/icd-9-cm 995.27
http://hl7.org/fhir/sid/icd-10-cm Z88.0

Evidence

nlp-insights enriches resources according to the Alvearie FHIR IG.

The nlp-insights service adds detailed information to the enriched resource to explain what caused the additional codes to be added.

Insight Summary

Each coding that has been derived by NLP contains an insight summary extension that can be examined to determine which insight derived the code.

For example consider the UMLS code C0559470 that was added to the allergy intolerance resource pnt123.

C0559470 coding in AllergyIntolerance pnt123
{
  "extension": [
    {
      "extension": [
        {
          "url": "http://ibm.com/fhir/cdm/StructureDefinition/insight-id",
          "valueIdentifier": {
            "system": "urn:alvearie.io/health_patterns/services/nlp_insights/acd",
            "value": "33376613c387908fbcd8ffafca135a19d84efef2bd195e9750d4bd41"
          }
        },
        {
          "url": "http://ibm.com/fhir/cdm/StructureDefinition/category",
          "valueCodeableConcept": {
            "coding": [
              {
                "code": "natural-language-processing",
                "display": "NLP",
                "system": "http://ibm.com/fhir/cdm/CodeSystem/insight-category-code-system"
              }
            ],
            "text": "NLP"
          }
        }
      ],
      "url": "http://ibm.com/fhir/cdm/StructureDefinition/insight-summary"
    }
  ],
  "code": "C0559470",
  "display": "allergy to peanut",
  "system": "http://terminology.hl7.org/CodeSystem/umls"
}
}


The summary extension has been added to the coding. The summary has an insight id and category. The insight id has a system and identifier that together identify the insight. In this example, the system tells us that the insight was discovered using ACD. The identifier value is unique (within the system) to this insight, and may be used to find the insight extension for the insight in the resource meta.

When nlp-insights derives codes, it will create one insight for all derived codes that are created from the same text. It is common for all summary extensions to refer to the same insight id.

The category tells us that the coding was derived using Natural Language Processing.

Insight Extension in Resource Meta

The insight identified by the summary extension has an insight extension in the resource's meta. The insight extension contains lots of details about what the insight applies to and why it was created.

Insight extension in the meta for AllergyIntolerance pnt123
{
  "extension": [
    {
      "url": "http://ibm.com/fhir/cdm/StructureDefinition/insight-id",
      "valueIdentifier": {
        "system": "urn:alvearie.io/health_patterns/services/nlp_insights/acd",
        "value": "33376613c387908fbcd8ffafca135a19d84efef2bd195e9750d4bd41"
      }
    },
    {
      "url": "http://ibm.com/fhir/cdm/StructureDefinition/path",
      "valueString": "AllergyIntolerance.code.coding"
    },
    {
      "extension": [
        {
          "url": "http://ibm.com/fhir/cdm/StructureDefinition/reference",
          "valueReference": {
            "reference": "urn:uuid:12f769ca-81a8-4482-a07a-c98260b4991b"
          }
        },
        {
          "url": "http://ibm.com/fhir/cdm/StructureDefinition/reference-path",
          "valueString": "AllergyIntolerance.code.text"
        },
        {
          "url": "http://ibm.com/fhir/cdm/StructureDefinition/evaluated-output",
          "valueAttachment": {
            "contentType": "application/json",
            "data": "eyJhdHRyaWJ1dGVWYWx1ZXMiOiBbeyJiZWdpbiI6IDAsICJlbmQiOiAxNCwgImNvdmVyZWRUZXh0IjogInBlYW51dCBhbGxlcmd5IiwgIm5lZ2F0ZWQiOiBmYWxzZSwgInByZWZlcnJlZE5hbWUiOiAiYWxsZXJneSB0byBwZWFudXQiLCAidmFsdWVzIjogW3sidmFsdWUiOiAiYWxsZXJneSB0byBwZWFudXQifV0sICJzb3VyY2UiOiAiQ2xpbmljYWwgSW5zaWdodHMgLSBBdHRyaWJ1dGVzIiwgInNvdXJjZVZlcnNpb24iOiAidjEuMCIsICJjb25jZXB0IjogeyJ1aWQiOiA0fSwgIm5hbWUiOiAiRGlhZ25vc2lzIiwgImljZDlDb2RlIjogIjk5NS4zIiwgImljZDEwQ29kZSI6ICJaOTEuMDEwLFo5MS4wIiwgInNub21lZENvbmNlcHRJZCI6ICI5MTkzNTAwOSIsICJkaXNhbWJpZ3VhdGlvbkRhdGEiOiB7InZhbGlkaXR5IjogIlZBTElEIn0sICJpbnNpZ2h0TW9kZWxEYXRhIjogeyJkaWFnbm9zaXMiOiB7InVzYWdlIjogeyJleHBsaWNpdFNjb3JlIjogMC44OTYsICJwYXRpZW50UmVwb3J0ZWRTY29yZSI6IDAuMDA5LCAiZGlzY3Vzc2VkU2NvcmUiOiAwLjA5NX0sICJzdXNwZWN0ZWRTY29yZSI6IDAuMTA5LCAic3ltcHRvbVNjb3JlIjogMC4wMDEsICJ0cmF1bWFTY29yZSI6IDAuMCwgImZhbWlseUhpc3RvcnlTY29yZSI6IDAuMDAzfX0sICJjY3NDb2RlIjogIjI1MyJ9XSwgImNvbmNlcHRzIjogW3sidHlwZSI6ICJ1bWxzLkRpc2Vhc2VPclN5bmRyb21lIiwgInVpZCI6IDIsICJiZWdpbiI6IDAsICJlbmQiOiAxNCwgImNvdmVyZWRUZXh0IjogInBlYW51dCBhbGxlcmd5IiwgIm5lZ2F0ZWQiOiBmYWxzZSwgImN1aSI6ICJDMDU1OTQ3MCIsICJwcmVmZXJyZWROYW1lIjogIkFsbGVyZ3kgdG8gcGVhbnV0cyIsICJzZW1hbnRpY1R5cGUiOiAiZHN5biIsICJzb3VyY2UiOiAidW1scyIsICJzb3VyY2VWZXJzaW9uIjogIjIwMjBBQSIsICJkaXNhbWJpZ3VhdGlvbkRhdGEiOiB7InZhbGlkaXR5IjogIk5PX0RFQ0lTSU9OIn0sICJpY2Q5Q29kZSI6ICI5OTUuMyIsICJpY2QxMENvZGUiOiAiWjkxLjAsWjkxLjAxMCIsICJzbm9tZWRDb25jZXB0SWQiOiAiOTE5MzUwMDkiLCAibWVzaElkIjogIk0wMzUxODM2IiwgInZvY2FicyI6ICJNVEgsQ0hWLE1TSCxNRURMSU5FUExVUyxTTk9NRURDVF9VUyIsICJpbnNpZ2h0TW9kZWxEYXRhIjogeyJkaWFnbm9zaXMiOiB7InVzYWdlIjogeyJleHBsaWNpdFNjb3JlIjogMC44OTYsICJwYXRpZW50UmVwb3J0ZWRTY29yZSI6IDAuMDA5LCAiZGlzY3Vzc2VkU2NvcmUiOiAwLjA5NX0sICJzdXNwZWN0ZWRTY29yZSI6IDAuMTA5LCAic3ltcHRvbVNjb3JlIjogMC4wMDEsICJ0cmF1bWFTY29yZSI6IDAuMCwgImZhbWlseUhpc3RvcnlTY29yZSI6IDAuMDAzfX19LCB7InR5cGUiOiAiSUNEaWFnbm9zaXMiLCAiYmVnaW4iOiAwLCAiZW5kIjogMTQsICJjb3ZlcmVkVGV4dCI6ICJwZWFudXQgYWxsZXJneSIsICJuZWdhdGVkIjogZmFsc2UsICJjdWkiOiAiQzA1NTk0NzAiLCAicHJlZmVycmVkTmFtZSI6ICJBbGxlcmd5IHRvIHBlYW51dHMiLCAic291cmNlIjogIkNsaW5pY2FsIEluc2lnaHRzIC0gRGVyaXZlZCBDb25jZXB0cyIsICJzb3VyY2VWZXJzaW9uIjogInYxLjAiLCAiZGlzYW1iaWd1YXRpb25EYXRhIjogeyJ2YWxpZGl0eSI6ICJWQUxJRCJ9LCAiaWNkOUNvZGUiOiAiOTk1LjMiLCAiaWNkMTBDb2RlIjogIlo5MS4wLFo5MS4wMTAiLCAic25vbWVkQ29uY2VwdElkIjogIjkxOTM1MDA5IiwgIm1lc2hJZCI6ICJNMDM1MTgzNiIsICJpbnNpZ2h0TW9kZWxEYXRhIjogeyJkaWFnbm9zaXMiOiB7InVzYWdlIjogeyJleHBsaWNpdFNjb3JlIjogMC44OTYsICJwYXRpZW50UmVwb3J0ZWRTY29yZSI6IDAuMDA5LCAiZGlzY3Vzc2VkU2NvcmUiOiAwLjA5NX0sICJzdXNwZWN0ZWRTY29yZSI6IDAuMTA5LCAic3ltcHRvbVNjb3JlIjogMC4wMDEsICJ0cmF1bWFTY29yZSI6IDAuMCwgImZhbWlseUhpc3RvcnlTY29yZSI6IDAuMDAzfX0sICJydWxlSWQiOiAiNjk4ZjJiMTktMjdiNi00ZGFiLTkxNTAtN2Q3ZWYzYjAzYTVjIiwgImRlcml2ZWRGcm9tIjogW3sidWlkIjogMn1dfV0sICJTeW1wdG9tRGlzZWFzZUluZCI6IFt7InR5cGUiOiAiYWNpLlN5bXB0b21EaXNlYXNlSW5kIiwgInVpZCI6IDQsICJiZWdpbiI6IDAsICJlbmQiOiAxNCwgImNvdmVyZWRUZXh0IjogInBlYW51dCBhbGxlcmd5IiwgIm5lZ2F0ZWQiOiBmYWxzZSwgImN1aSI6ICJDMDU1OTQ3MCIsICJpY2QxMENvZGUiOiAiWjkxLjAxMCxaOTEuMCIsICJtb2RhbGl0eSI6ICJwb3NpdGl2ZSIsICJzeW1wdG9tRGlzZWFzZVN1cmZhY2VGb3JtIjogInBlYW51dCBhbGxlcmd5IiwgInNub21lZENvbmNlcHRJZCI6ICI5MTkzNTAwOSIsICJjY3NDb2RlIjogIjI1MyIsICJzeW1wdG9tRGlzZWFzZU5vcm1hbGl6ZWROYW1lIjogImFsbGVyZ3kgdG8gcGVhbnV0IiwgImljZDlDb2RlIjogIjk5NS4zIiwgImRpc2FtYmlndWF0aW9uRGF0YSI6IHsidmFsaWRpdHkiOiAiVkFMSUQifSwgImluc2lnaHRNb2RlbERhdGEiOiB7ImRpYWdub3NpcyI6IHsidXNhZ2UiOiB7ImV4cGxpY2l0U2NvcmUiOiAwLjg5NiwgInBhdGllbnRSZXBvcnRlZFNjb3JlIjogMC4wMDksICJkaXNjdXNzZWRTY29yZSI6IDAuMDk1fSwgInN1c3BlY3RlZFNjb3JlIjogMC4xMDksICJzeW1wdG9tU2NvcmUiOiAwLjAwMSwgInRyYXVtYVNjb3JlIjogMC4wLCAiZmFtaWx5SGlzdG9yeVNjb3JlIjogMC4wMDN9fX1dLCAic3BlbGxDb3JyZWN0ZWRUZXh0IjogW3siY29ycmVjdGVkVGV4dCI6ICJwZWFudXQgYWxsZXJneSJ9XX0="
          }
        }
      ],
      "url": "http://ibm.com/fhir/cdm/StructureDefinition/insight-detail"
    }
  ],
  "url": "http://ibm.com/fhir/cdm/StructureDefinition/insight"
}


The extensions of interest within the insight extension are:

extension purpose
insight-id identifier for the insight.
path HL7 FHIR Path to the part of this resource that the insight applies to. This is the location where derived codes have been added.
insight-detail Detailed supporting evidence for the insight.

Insight detail

The insight detail extension provides information about why the insight got created:

Extension Purpose
reference The resource that contained the text that was used to create the insight. For enrichment, this will always be the enriched resource, the insight is derived from the same resource that the insight pertains to.
reference-path HL7 FHIR Path that describes the location of the text used to create the insight (within reference)
evaluated-output base64 response from the ACD Service