{
  "_id": "6aa9ebcdea78b3e62eac8f09",
  "Package": "trialdiff",
  "Title": "Clinical Trial Data-Cut Change Detection and Impact Assessment",
  "Version": "0.2.0",
  "Authors@R": "person(\"Hirujan\", \"Rangaraj\", email = \"hirujanrangaraj@gmail.com\",\nrole = c(\"aut\", \"cre\"))",
  "Description": "A transparent, rule-based framework for detecting changes\nbetween successive data cuts of clinical trial datasets,\nclassifying those changes into clinically meaningful\ncategories, tracing user-defined data lineage, and assessing\nwhich downstream analyses and outputs may be affected. The\npackage is designed to complement existing low-level data frame\ncomparison tools by adding clinical-trial-specific\nclassification, lineage and impact-assessment layers on top of\ndeterministic comparison.",
  "License": "MIT + file LICENSE",
  "URL": "https://github.com/Hirujan-R/trialdiff,\nhttps://Hirujan-R.github.io/trialdiff/",
  "BugReports": "https://github.com/Hirujan-R/trialdiff/issues",
  "Config/testthat/edition": "3",
  "Encoding": "UTF-8",
  "Language": "en-GB",
  "LazyData": "true",
  "Roxygen": "list(markdown = TRUE)",
  "VignetteBuilder": "knitr",
  "Config/roxygen2/version": "8.1.0",
  "Repository": "https://hirujan-r.r-universe.dev",
  "Date/Publication": "2026-09-16 00:33:33 UTC",
  "RemoteUrl": "https://github.com/Hirujan-R/trialdiff",
  "RemoteRef": "v0.2.0",
  "RemoteSha": "f8b54488d0168e1bf02498c811dda94042a0d711",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-09-16 01:03:29 UTC",
    "User": "root"
  },
  "Author": "Hirujan Rangaraj [aut, cre]",
  "Maintainer": "Hirujan Rangaraj <hirujanrangaraj@gmail.com>",
  "_user": "hirujan-r",
  "_type": "src",
  "_file": "trialdiff_0.2.0.tar.gz",
  "_fileid": "https://r2.ropensci.org/170bb7b4e3d80f6aa71e39f7128fd890bd81affeb6fc710e02d2eaaf341531d8",
  "_filesize": 227755,
  "_sha256": "170bb7b4e3d80f6aa71e39f7128fd890bd81affeb6fc710e02d2eaaf341531d8",
  "_expires": "2026-12-25T01:07:23.000Z",
  "_created": "2026-09-16T01:03:29.000Z",
  "_published": "2026-09-16T01:07:25.501Z",
  "_jobs": [
    {
      "job": 104625383849,
      "time": 183,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "10426110650"
    },
    {
      "job": 104625383861,
      "time": 166,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "10426006595"
    },
    {
      "job": 104625383870,
      "time": 189,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "10426141194"
    },
    {
      "job": 104625383873,
      "time": 152,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "10425941761"
    },
    {
      "job": 104624464518,
      "time": 259,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "10425229973"
    },
    {
      "job": 104625383812,
      "time": 145,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "10426360502"
    },
    {
      "job": 104625383842,
      "time": 106,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "10425911793"
    },
    {
      "job": 104625383868,
      "time": 95,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "10425901808"
    },
    {
      "job": 104625383883,
      "time": 94,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "10426091215"
    }
  ],
  "_host": "GitHub-Actions",
  "_buildurl": "https://github.com/r-universe/hirujan-r/actions/runs/35042208342",
  "_status": "success",
  "_upstream": "https://github.com/Hirujan-R/trialdiff",
  "_commit": {
    "id": "f8b54488d0168e1bf02498c811dda94042a0d711",
    "author": "Hirujan Rangaraj <hirujanrangaraj@gmail.com>",
    "committer": "Hirujan Rangaraj <hirujanrangaraj@gmail.com>",
    "message": "chore(release): v0.2.0\n",
    "time": 1789518813
  },
  "_maintainer": {
    "name": "Hirujan Rangaraj",
    "email": "hirujanrangaraj@gmail.com",
    "login": "hirujan-r",
    "description": "",
    "uuid": 70657769
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.1",
      "role": "Depends"
    },
    {
      "package": "cli",
      "role": "Imports"
    },
    {
      "package": "dplyr",
      "role": "Imports"
    },
    {
      "package": "htmltools",
      "role": "Imports"
    },
    {
      "package": "jsonlite",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "role": "Imports"
    },
    {
      "package": "tibble",
      "role": "Imports"
    },
    {
      "package": "admiral",
      "role": "Suggests"
    },
    {
      "package": "cards",
      "role": "Suggests"
    },
    {
      "package": "covr",
      "role": "Suggests"
    },
    {
      "package": "diffdf",
      "role": "Suggests"
    },
    {
      "package": "haven",
      "role": "Suggests"
    },
    {
      "package": "igraph",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "lintr",
      "role": "Suggests"
    },
    {
      "package": "metacore",
      "role": "Suggests"
    },
    {
      "package": "pharmaverseadam",
      "role": "Suggests"
    },
    {
      "package": "pharmaversesdtm",
      "role": "Suggests"
    },
    {
      "package": "pkgdown",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "rtables",
      "role": "Suggests"
    },
    {
      "package": "styler",
      "role": "Suggests"
    },
    {
      "package": "tern",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "waldo",
      "role": "Suggests"
    },
    {
      "package": "withr",
      "role": "Suggests"
    }
  ],
  "_owner": "hirujan-r",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-38",
      "n": 26
    }
  ],
  "_tags": [
    {
      "name": "v0.1.0",
      "date": "2026-09-15"
    },
    {
      "name": "v0.2.0",
      "date": "2026-09-16"
    }
  ],
  "_stars": 0,
  "_contributors": [
    {
      "user": "hirujan-r",
      "count": 28,
      "uuid": 70657769
    }
  ],
  "_userbio": {
    "uuid": 70657769,
    "type": "user",
    "name": "Hirujan Rangaraj",
    "followers": 0
  },
  "_downloads": {
    "count": 0,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/trialdiff"
  },
  "_devurl": "https://github.com/hirujan-r/trialdiff",
  "_pkgdown": "https://Hirujan-R.github.io/trialdiff/",
  "_searchresults": 5,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "extra/trialdiff.html",
    "LICENSE"
  ],
  "_cranurl": false,
  "_exports": [
    "add_edges",
    "add_outputs",
    "as_igraph",
    "as_json",
    "as_register",
    "assess_impact",
    "classify_changes",
    "compare_cut",
    "define_lineage",
    "impact_policy",
    "lineage_edge",
    "lineage_from_metadata",
    "lineage_provenance",
    "lineage_review",
    "output_registry",
    "remove_edges",
    "report_diff",
    "td_categories",
    "td_default_rules",
    "td_output",
    "td_rule",
    "trace_dependencies"
  ],
  "_datasets": [
    {
      "name": "adlb_cut1",
      "title": "Synthetic ADLB data cuts",
      "object": "adlb_cut1",
      "class": [
        "data.frame"
      ],
      "fields": [
        "USUBJID",
        "PARAMCD",
        "PARAM",
        "AVISIT",
        "TRT01P",
        "AVAL",
        "BASE",
        "CHG",
        "ABLFL"
      ],
      "rows": 360,
      "table": true,
      "tojson": true
    },
    {
      "name": "adlb_cut2",
      "title": "Synthetic ADLB data cuts",
      "object": "adlb_cut2",
      "class": [
        "data.frame"
      ],
      "fields": [
        "USUBJID",
        "PARAMCD",
        "PARAM",
        "AVISIT",
        "TRT01P",
        "AVAL",
        "BASE",
        "CHG",
        "ABLFL"
      ],
      "rows": 384,
      "table": true,
      "tojson": true
    },
    {
      "name": "adsl_adlb_lineage",
      "title": "Example ADSL/ADLB lineage",
      "object": "adsl_adlb_lineage",
      "class": [
        "td_lineage"
      ],
      "fields": [],
      "table": false,
      "tojson": false
    },
    {
      "name": "adsl_cut1",
      "title": "Synthetic ADSL data cuts",
      "object": "adsl_cut1",
      "class": [
        "data.frame"
      ],
      "fields": [
        "STUDYID",
        "USUBJID",
        "SUBJID",
        "SITEID",
        "AGE",
        "SEX",
        "RACE",
        "TRT01P",
        "SAFFL",
        "ITTFL",
        "TRT01A"
      ],
      "rows": 30,
      "table": true,
      "tojson": true
    },
    {
      "name": "adsl_cut2",
      "title": "Synthetic ADSL data cuts",
      "object": "adsl_cut2",
      "class": [
        "data.frame"
      ],
      "fields": [
        "STUDYID",
        "USUBJID",
        "SUBJID",
        "SITEID",
        "AGE",
        "SEX",
        "RACE",
        "TRT01P",
        "SAFFL",
        "ITTFL",
        "TRT01A",
        "REGION"
      ],
      "rows": 31,
      "table": true,
      "tojson": true
    }
  ],
  "_help": [
    {
      "page": "add_edges",
      "title": "Add edges to a lineage graph",
      "topics": [
        "add_edges"
      ]
    },
    {
      "page": "add_outputs",
      "title": "Add an analysis/output registry to a lineage graph",
      "topics": [
        "add_outputs"
      ]
    },
    {
      "page": "adlb_cut1",
      "title": "Synthetic ADLB data cuts",
      "topics": [
        "adlb_cut1",
        "adlb_cut2"
      ]
    },
    {
      "page": "adsl_adlb_lineage",
      "title": "Example ADSL/ADLB lineage",
      "topics": [
        "adsl_adlb_lineage"
      ]
    },
    {
      "page": "adsl_cut1",
      "title": "Synthetic ADSL data cuts",
      "topics": [
        "adsl_cut1",
        "adsl_cut2"
      ]
    },
    {
      "page": "as_igraph",
      "title": "Convert lineage to an igraph object",
      "topics": [
        "as_igraph"
      ]
    },
    {
      "page": "as_json",
      "title": "Machine-readable report data",
      "topics": [
        "as_json"
      ]
    },
    {
      "page": "as_register",
      "title": "Tidy register of every detected change",
      "topics": [
        "as_register"
      ]
    },
    {
      "page": "assess_impact",
      "title": "Assess downstream impact of classified changes",
      "topics": [
        "assess_impact"
      ]
    },
    {
      "page": "classify_changes",
      "title": "Classify detected changes",
      "topics": [
        "classify_changes"
      ]
    },
    {
      "page": "compare_cut",
      "title": "Compare two data cuts of a clinical dataset",
      "topics": [
        "compare_cut"
      ]
    },
    {
      "page": "define_lineage",
      "title": "Define a data lineage graph",
      "topics": [
        "define_lineage"
      ]
    },
    {
      "page": "impact_policy",
      "title": "Impact-assessment policy",
      "topics": [
        "impact_policy"
      ]
    },
    {
      "page": "lineage_edge",
      "title": "Define a lineage edge",
      "topics": [
        "lineage_edge"
      ]
    },
    {
      "page": "lineage_from_metadata",
      "title": "Derive lineage from study metadata",
      "topics": [
        "lineage_from_metadata"
      ]
    },
    {
      "page": "lineage_provenance",
      "title": "Provenance of metadata-driven lineage edges",
      "topics": [
        "lineage_provenance"
      ]
    },
    {
      "page": "lineage_review",
      "title": "References needing review after metadata-driven lineage",
      "topics": [
        "lineage_review"
      ]
    },
    {
      "page": "output_registry",
      "title": "Build an analysis/output registry",
      "topics": [
        "output_registry"
      ]
    },
    {
      "page": "remove_edges",
      "title": "Remove edges from a lineage graph",
      "topics": [
        "remove_edges"
      ]
    },
    {
      "page": "report_diff",
      "title": "Produce a change-review report",
      "topics": [
        "report_diff"
      ]
    },
    {
      "page": "td_categories",
      "title": "Category label lookup",
      "topics": [
        "td_categories"
      ]
    },
    {
      "page": "td_default_rules",
      "title": "Default rule set",
      "topics": [
        "td_default_rules"
      ]
    },
    {
      "page": "td_output",
      "title": "Declare an analysis or output and its inputs",
      "topics": [
        "td_output"
      ]
    },
    {
      "page": "td_rule",
      "title": "Change classification rules",
      "topics": [
        "td_rule"
      ]
    },
    {
      "page": "trace_dependencies",
      "title": "Trace downstream dependencies",
      "topics": [
        "trace_dependencies"
      ]
    }
  ],
  "_readme": "https://github.com/Hirujan-R/trialdiff/raw/v0.2.0/README.md",
  "_rundeps": [
    "base64enc",
    "cli",
    "digest",
    "dplyr",
    "fastmap",
    "generics",
    "glue",
    "htmltools",
    "jsonlite",
    "lifecycle",
    "magrittr",
    "pillar",
    "pkgconfig",
    "R6",
    "rlang",
    "tibble",
    "tidyselect",
    "utf8",
    "vctrs",
    "withr"
  ],
  "_vignettes": [
    {
      "source": "case-study.Rmd",
      "filename": "case-study.html",
      "title": "Case study: data-cut review on public ADaM data",
      "engine": "knitr::rmarkdown",
      "headings": [
        "The two data cuts",
        "Lineage from metadata plus a registry",
        "Compare and classify",
        "Assess downstream impact",
        "Review report",
        "What this demonstrates",
        "Limitations"
      ],
      "created": "2026-09-16 00:32:43",
      "modified": "2026-09-16 00:32:43",
      "commits": 1
    },
    {
      "source": "trialdiff.Rmd",
      "filename": "trialdiff.html",
      "title": "Getting started with trialdiff",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Why trialdiff?",
        "The example data",
        "1. Compare two data cuts",
        "2. Classify the changes",
        "3. Define lineage",
        "4. Assess impact",
        "5. Report",
        "Next steps"
      ],
      "created": "2026-09-15 22:26:50",
      "modified": "2026-09-15 22:26:50",
      "commits": 1
    },
    {
      "source": "lineage-and-impact.Rmd",
      "filename": "lineage-and-impact.html",
      "title": "Lineage and impact assessment",
      "engine": "knitr::rmarkdown",
      "headings": [
        "The lineage model",
        "Tracing",
        "Impact assessment",
        "Why \"definitely\" versus \"potentially\"?",
        "Lineage gaps",
        "Generating lineage from metadata"
      ],
      "created": "2026-09-15 22:26:50",
      "modified": "2026-09-16 00:17:39",
      "commits": 2
    },
    {
      "source": "change-classification.Rmd",
      "filename": "change-classification.html",
      "title": "The change-classification system",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Design principles",
        "The built-in categories",
        "The change register",
        "Applying the default rules",
        "Writing a custom rule",
        "Prioritisation"
      ],
      "created": "2026-09-15 22:26:50",
      "modified": "2026-09-15 22:26:50",
      "commits": 1
    },
    {
      "source": "ecosystem.Rmd",
      "filename": "ecosystem.html",
      "title": "trialdiff and the existing ecosystem",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Complement, not duplicate",
        "Integration points",
        "Is this novel?"
      ],
      "created": "2026-09-15 22:26:50",
      "modified": "2026-09-16 00:17:39",
      "commits": 4
    }
  ],
  "_score": 3.3979400086720375,
  "_indexed": true,
  "_nocasepkg": "trialdiff",
  "_universes": [
    "hirujan-r"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.2.0",
      "date": "2026-09-16T01:06:22.000Z",
      "distro": "resolute",
      "commit": "f8b54488d0168e1bf02498c811dda94042a0d711",
      "fileid": "https://r2.ropensci.org/5c876d43f9748fb01ba8003cd71d5e99513974ca9b776b8b8c9322869dd3ef0a",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/hirujan-r/actions/runs/35042208342"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.2.0",
      "date": "2026-09-16T01:06:16.000Z",
      "distro": "resolute",
      "commit": "f8b54488d0168e1bf02498c811dda94042a0d711",
      "fileid": "https://r2.ropensci.org/4b521db7a366bf896ca6efadbb7e2b2557b15feb6c0476c4ffffc9b5ba9a7be8",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/hirujan-r/actions/runs/35042208342"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.2.0",
      "date": "2026-09-16T01:06:11.000Z",
      "commit": "f8b54488d0168e1bf02498c811dda94042a0d711",
      "fileid": "https://r2.ropensci.org/8d6b1ad36b0ec06c26d129bb097d94fe55109733b41aade672ffef76e8501118",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/hirujan-r/actions/runs/35042208342"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.2.0",
      "date": "2026-09-16T01:05:43.000Z",
      "commit": "f8b54488d0168e1bf02498c811dda94042a0d711",
      "fileid": "https://r2.ropensci.org/656a46ec80c4a1890f7506d251776921e3992fa9c0451de15131c050ff414e99",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/hirujan-r/actions/runs/35042208342"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.2.0",
      "date": "2026-09-16T01:06:13.000Z",
      "commit": "f8b54488d0168e1bf02498c811dda94042a0d711",
      "fileid": "https://r2.ropensci.org/3119d93bb4385378f946f3b0945fcfa0022db5ab56c48d6f6426ebebe3d61e79",
      "status": "success",
      "buildurl": "https://github.com/r-universe/hirujan-r/actions/runs/35042208342"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.2.0",
      "date": "2026-09-16T01:04:53.000Z",
      "commit": "f8b54488d0168e1bf02498c811dda94042a0d711",
      "fileid": "https://r2.ropensci.org/7650a1144856fd64a3c5c34ec69dc995dc659480af906e876be4ff8a45e2930e",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/hirujan-r/actions/runs/35042208342"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.2.0",
      "date": "2026-09-16T01:04:52.000Z",
      "commit": "f8b54488d0168e1bf02498c811dda94042a0d711",
      "fileid": "https://r2.ropensci.org/6092eb336c0dd6c28b16120b8b0861c3d5dbf19d5ef6b8acf64b56d5dd892089",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/hirujan-r/actions/runs/35042208342"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.2.0",
      "date": "2026-09-16T01:04:54.000Z",
      "commit": "f8b54488d0168e1bf02498c811dda94042a0d711",
      "fileid": "https://r2.ropensci.org/5d16b79b7fc2e0a9be06cf95dd5621be882dafc70d898ecb54758fc9ebc7ed59",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/hirujan-r/actions/runs/35042208342"
    }
  ]
}