profiles / StructureDefinition

OMOP-Convertible DiagnosticReport → note

DiagnosticReport note edge mapspec

A DiagnosticReport that carries free-text content (conclusion or presentedForm attachments) and produces a row in the OMOP `note` table to preserve the unstructured clinical narrative. Unlike the measurement/observation/procedure_occurrence edges, the code is NOT a routing key — note rows are unstructured. A single DiagnosticReport may produce both a domain-routed row and a note row.

Path Card Type Binding / Fixed Comment
DiagnosticReport.status fhir/diagnostic-report-status required
DiagnosticReport.code 1..* MS Required for note_title and traceability. No domain binding — notes are unstructured.
DiagnosticReport.subject 1..* Reference Required for note.person_id.
DiagnosticReport.effective[x] 1..* MS Required for note.note_date / note_datetime.
DiagnosticReport.conclusion MS Either conclusion or presentedForm[] must be present — enforced by the conclusion-or-presentedForm constraint.
DiagnosticReport.presentedForm MS Either conclusion or presentedForm[] must be present.
Raw JSON
{
  "resourceType": "StructureDefinition",
  "id": "omop-diagnosticreport-note",
  "url": "https://fhir2omop.health-samurai.io/StructureDefinition/omop-diagnosticreport-note",
  "version": "0.1.0",
  "name": "OmopDiagnosticReportNote",
  "title": "OMOP-Convertible DiagnosticReport → note",
  "status": "draft",
  "experimental": true,
  "description": "A DiagnosticReport that carries free-text content (conclusion or presentedForm attachments) and produces a row in the OMOP `note` table to preserve the unstructured clinical narrative. Unlike the measurement/observation/procedure_occurrence edges, the code is NOT a routing key — note rows are unstructured. A single DiagnosticReport may produce both a domain-routed row and a note row.",
  "fhirVersion": "4.0.1",
  "kind": "resource",
  "abstract": false,
  "type": "DiagnosticReport",
  "baseDefinition": "http://hl7.org/fhir/StructureDefinition/DiagnosticReport",
  "derivation": "constraint",
  "extension": [
    {
      "url": "https://fhir2omop.health-samurai.io/StructureDefinition/omop-target-table",
      "valueString": "note"
    },
    {
      "url": "https://fhir2omop.health-samurai.io/StructureDefinition/omop-edge",
      "valueString": "DiagnosticReport__note"
    }
  ],
  "differential": {
    "element": [
      {
        "id": "DiagnosticReport.status",
        "path": "DiagnosticReport.status",
        "binding": {
          "strength": "required",
          "valueSet": "http://hl7.org/fhir/ValueSet/diagnostic-report-status",
          "description": "final | amended | corrected"
        }
      },
      {
        "id": "DiagnosticReport.code",
        "path": "DiagnosticReport.code",
        "min": 1,
        "mustSupport": true,
        "comment": "Required for note_title and traceability. No domain binding — notes are unstructured."
      },
      {
        "id": "DiagnosticReport.subject",
        "path": "DiagnosticReport.subject",
        "min": 1,
        "type": [
          {
            "code": "Reference",
            "targetProfile": [
              "http://hl7.org/fhir/StructureDefinition/Patient"
            ]
          }
        ],
        "comment": "Required for note.person_id."
      },
      {
        "id": "DiagnosticReport.effective[x]",
        "path": "DiagnosticReport.effective[x]",
        "min": 1,
        "mustSupport": true,
        "comment": "Required for note.note_date / note_datetime."
      },
      {
        "id": "DiagnosticReport.conclusion",
        "path": "DiagnosticReport.conclusion",
        "mustSupport": true,
        "comment": "Either conclusion or presentedForm[] must be present — enforced by the conclusion-or-presentedForm constraint."
      },
      {
        "id": "DiagnosticReport.presentedForm",
        "path": "DiagnosticReport.presentedForm",
        "mustSupport": true,
        "comment": "Either conclusion or presentedForm[] must be present."
      }
    ],
    "constraint": []
  },
  "constraint": [
    {
      "key": "omop-note-1",
      "severity": "error",
      "human": "Either conclusion or presentedForm must be present to create a note row.",
      "expression": "conclusion.exists() or presentedForm.exists()"
    }
  ],
  "targetTable": "note",
  "edgeKey": "DiagnosticReport__note"
}