{
  "id": "subject-identity",
  "contentVersion": "1.0.0",
  "synthetic": true,
  "authorship": "original",
  "profileId": "sdtm-2-0_ig-3-4",
  "inputFile": "input.json",
  "outputJsonFile": "output.json",
  "outputCsvFile": "output.csv",
  "expectedRowCount": 2,
  "columnOrder": [
    "STUDYID",
    "DOMAIN",
    "USUBJID",
    "SUBJID",
    "AGE",
    "SEX",
    "RFSTDTC"
  ],
  "exampleFieldTypes": {
    "STUDYID": "string",
    "DOMAIN": "string",
    "USUBJID": "string",
    "SUBJID": "string",
    "AGE": "number",
    "SEX": "null",
    "RFSTDTC": "string"
  },
  "nullConvention": "JSON null becomes an empty CSV cell. Empty CSV cells cannot distinguish absent from empty text; use JSON for that distinction.",
  "mappings": [
    {
      "inputPath": "study",
      "outputField": "STUDYID",
      "explanation": "Copy the fictional study identifier."
    },
    {
      "inputPath": "subject",
      "outputField": "USUBJID",
      "explanation": "Copy the stable authored subject key; do not expose the app-local id."
    },
    {
      "inputPath": "localLabel",
      "outputField": "SUBJID",
      "explanation": "Preserve the string and leading zeros."
    },
    {
      "inputPath": "age",
      "outputField": "AGE",
      "explanation": "Copy an invented integer; no age derivation is implied."
    },
    {
      "inputPath": "referenceDate",
      "outputField": "RFSTDTC",
      "explanation": "Preserve the date string; this is not a universal reference-date rule."
    },
    {
      "inputPath": "(authored)",
      "outputField": "DOMAIN",
      "explanation": "Set constant DM for this teaching example."
    },
    {
      "inputPath": "(not collected)",
      "outputField": "SEX",
      "explanation": "Missing categorical values stay null; no controlled terminology lookup."
    }
  ],
  "traceLinks": [
    {
      "inputRowId": "person-a",
      "outputRowId": "subject-identity:1"
    },
    {
      "inputRowId": "person-b",
      "outputRowId": "subject-identity:2"
    }
  ],
  "limitations": [
    "This extract omits many fields and is not a complete DM dataset.",
    "Ages and reference dates are invented; no protocol-specific derivation is demonstrated.",
    "SEX is null; no controlled value or allowed list is asserted."
  ],
  "ctClaims": [],
  "reviewedAt": "2026-10-08"
}