diff --git a/Deprecated/CORE-000510/rule.yml b/Deprecated/CORE-000510/rule.yml index 70d4b45d5..2ddff12df 100644 --- a/Deprecated/CORE-000510/rule.yml +++ b/Deprecated/CORE-000510/rule.yml @@ -90,6 +90,8 @@ Scope: Include: - ALL Domains: + Include: + - SPLIT DATASETS Exclude: - SUPP-- - AP-- diff --git a/Deprecated/CORE-000778/rule.yml b/Deprecated/CORE-000778/rule.yml index f7e4f88eb..ff6ed9420 100644 --- a/Deprecated/CORE-000778/rule.yml +++ b/Deprecated/CORE-000778/rule.yml @@ -13,8 +13,7 @@ Authorities: Version: "1" Version: "2.0" Citations: - - Cited Guidance: - Supplemental Qualifier datasets for split domains would also be + - Cited Guidance: Supplemental Qualifier datasets for split domains would also be split. The nomenclature would include the additional one-to-two characters used to identify the split dataset. Document: IG v3.4 @@ -29,8 +28,7 @@ Authorities: Version: "1" Version: "2.0" Citations: - - Cited Guidance: - AP Guide v1.0[2][Associated Persons datasets are given a prefix + - Cited Guidance: AP Guide v1.0[2][Associated Persons datasets are given a prefix of AP-- to identify the data as AP data to and distinguish them from study subject data.]|IG v3.2[4.1.1.7][Item 6][For example, if splitting by --CAT, then dataset names would be @@ -48,8 +46,7 @@ Authorities: Version: "1" Version: "2.0" Citations: - - Cited Guidance: - AP Guide v1.0[2][Associated Persons datasets are given a prefix + - Cited Guidance: AP Guide v1.0[2][Associated Persons datasets are given a prefix of AP-- to identify the data as AP data to and distinguish them from study subject data.]|IG v3.3[4.1.7][Item 6][For example, if splitting by --CAT, then dataset names would be @@ -75,8 +72,7 @@ Description: When an Associated Persons non-supplemental qualifier dataset is 4 and less than, or equal to, 6. Executability: Fully Executable Outcome: - Message: - Associated Persons non-supplemental qualifier dataset associated with a + Message: Associated Persons non-supplemental qualifier dataset associated with a split dataset does not have a dataset name with a length greater than 4 and less than, or equal to, 6. Rule Type: Dataset Metadata Check @@ -86,6 +82,10 @@ Scope: - ALL Domains: Include: - - AP-- + - AP SPLIT DATASETS + Exclude: + - SUPP-- + - APRELSUB + - APRELSPEC include_split_datasets: true Sensitivity: Dataset diff --git a/Unpublished/SENDIG/SEND_AUTHORING_TEMPLATE/rule.yml b/Unpublished/SENDIG/SEND_AUTHORING_TEMPLATE/rule.yml index 5cbc3dfc6..d80e1b9f9 100644 --- a/Unpublished/SENDIG/SEND_AUTHORING_TEMPLATE/rule.yml +++ b/Unpublished/SENDIG/SEND_AUTHORING_TEMPLATE/rule.yml @@ -758,20 +758,28 @@ Scope: - ALL - AP-- - APRELSUB + - APRELSPEC - POOLDEF - RELREC - RELSPEC - RELSUB - SUPP-- + - SQ-- + - SPLIT DATASETS + - AP SPLIT DATASETS Include: - ALL - AP-- - APRELSUB + - APRELSPEC - POOLDEF - RELREC - RELSPEC - RELSUB - SUPP-- + - SQ-- + - SPLIT DATASETS + - AP SPLIT DATASETS include_split_datasets: true | false Subclasses: Exclude: diff --git a/docs/README.md b/docs/README.md index 46d25a3d1..862d2e6c9 100644 --- a/docs/README.md +++ b/docs/README.md @@ -125,26 +125,28 @@ Most of the metadata attributes below are derived automatically from the dataset - **`unsplit_name`** and **`is_split`** are derived from the above — split datasets have a naming convention defined in the IG and whose name differs from their base domain (e.g., `QSX` is a split of `QS`). Determined by comparing name and domain with some logic to exclude supplemental domains. Neither property is available for use in rule check logic. - **`domain_is_custom`**, **`related_domain`**, and **`related_domain_is_custom`** are computed by operations applied at rule evaluation time. Note that `domain_is_custom` applies only to the domain itself — supplemental and AP datasets built on top of a custom domain (e.g., `SUPPXX`, `APXX`, `SQAPXX`) are not themselves custom but their **`related_domain_is_custom`**. -| name | unsplit_name | is_supp | domain | rdomain | is_ap | ap_suffix | domain_is_custom | related_domain | related_domain_is_custom | -| ------ | ------------ | ------- | ------ | ------- | ----- | --------- |------------------| -------------- | ------------------------ | -| QS | QS | False | QS | None | False | | False | | | -| QSX | QS | False | QS | None | False | | False | | | -| QSXX | QS | False | QS | None | False | | False | | | -| SUPPQS | SUPPQS | True | None | QS | False | | False | QS | | -| SUPPQSX | SUPPQS | True | None | QS | False | | False | QS | | -| SUPPQSXX | SUPPQS | True | None | QS | False | | False | QS | | -| APQS | APQS | False | APQS | None | True | QS | False | QS | | -| APQSX | APQS | False | APQS | None | True | QS | False | QS | | -| APQSXX | APQS | False | APQS | None | True | QS | False | QS | | -| SQAPQS | SQAPQS | True | None | APQS | True | | False | QS | | -| SQAPQSX | SQAPQS | True | None | APQS | True | | False | QS | | -| SQAPQSXX | SQAPQS | True | None | APQS | True | | False | | | -| RELREC | RELREC | False | None | None | False | | False | | | -| XX | XX | False | XX | None | False | | True | | | -| SUPPXX | SUPPXX | True | None | XX | False | | False | XX | True | -| APXX | APXX | False | APXX | None | True | XX | False | XX | True | -| SQAPXX | SQAPXX | True | None | APXX | True | | False | XX | True | -| FA | FA | False | FA | None | False | | False | | | +| name | unsplit_name | is_supp | is_split | domain | wildcard_replacement | rdomain | is_ap | ap_suffix | domain_is_custom | related_domain | related_domain_is_custom | +| --------- | ------------ | ------- | -------- | ------ | --------------------- | ------- | ----- | --------- | ---------------- | --------------- | ------------------------- | +| QS | QS | False | False | QS | QS | None | False | | False | | | +| QSX | QS | False | True | QS | QS | None | False | | False | | | +| QSXX | QS | False | True | QS | QS | None | False | | False | | | +| SUPPQS | SUPPQS | True | False | | | QS | False | | False | QS | | +| SUPPQSX | SUPPQS | True | True | | | QS | False | | False | QS | | +| SUPPQSXX | SUPPQS | True | True | | | QS | False | | False | QS | | +| APQS | APQS | False | False | QS | QS | None | True | QS | False | QS | | +| APQSX | APQS | False | True | QS | QS | None | True | QS | False | QS | | +| APQSXX | APQS | False | True | QS | QS | None | True | QS | False | QS | | +| SQAPQS | SQAPQS | True | False | | | APQS | False | | False | QS | | +| SQAPQSX | SQAPQS | True | True | | | APQS | False | | False | QS | | +| SQAPQSXX | SQAPQS | True | True | | | APQS | False | | False | | | +| RELREC | RELREC | False | False | | | None | False | | False | | | +| XX | XX | False | False | XX | XX | None | False | | True | | | +| SUPPXX | SUPPXX | True | False | | | XX | False | | False | XX | True | +| APXX | APXX | False | False | XX | XX | None | True | XX | False | XX | True | +| SQAPXX | SQAPXX | True | False | | | APXX | False | | False | XX | True | +| FA | FA | False | False | FA | FA | None | False | | False | | | +| APRELSUB | APRELSUB | False | False | | RELSUB | None | True | RELSUB | False | | | +| APRELSPEC | APRELSPEC | False | False | | RELSPEC | None | True | RELSPEC | False | | | ## Business Rule Examples diff --git a/docs/scope.md b/docs/scope.md index 4ea9e9e97..ad2643de3 100644 --- a/docs/scope.md +++ b/docs/scope.md @@ -27,7 +27,7 @@ For example, if your Rule column references variables from the DM domain, your s ### 3. Split Dataset Handling -The `include_split_datasets` flag (when set to `true`) allows split datasets to be processed separately from their parent datasets. This is useful when you need to analyze split datasets independently. +The `include_split_datasets` flag (when set to `true`) allows split datasets to be processed separately from their parent datasets. This is useful when you need to analyze split datasets independently. `SPLIT DATASETS` and `AP SPLIT DATASETS` can also be added in Rule Domain inclusion/exclusion scope criteria if the rule is applicable to unmerged split datasets. ### 4. Use Case Selection @@ -105,8 +105,19 @@ According to the schema, the following classes are available: ### Domains The following domain options are available: - Standard domains like `DM`, `AE`, `LB`, etc. -- Special values like `ALL`, `AP--`, `APRELSUB`, `POOLDEF`, etc. -- Supplementary datasets using patterns like `SUPP--`, `SUPP[domain]` +- Special values like `ALL`, `APRELSUB`, `POOLDEF`, etc. +- The fixed property keywords: `SUPP--`, `SQ--`, `AP--`, `SPLIT DATASETS`, `AP SPLIT DATASETS` + +## Fixed Property Keywords +Unlike literal domain names (`AE`, `LB`, `APRELSUB`, etc.), the following keywords match against **derived dataset properties** rather than the dataset name itself. See [README.md](./README.md#dataset-metadata-submission-guide) for how each property is derived: for the full definitions these properties are based on. + +| Keyword | Matches when | Derived from | +|---|---|---| +| `SUPP--` or `SQ--` | Dataset name starts with `SUPP` or `SQ` (interchangeable) | `is_supp` | +| `AP--` | Dataset is an Associated Persons domain | `is_ap` | +| `SPLIT DATASETS` | Dataset name differs from its unsplit/parent domain name | `is_split` | +| `AP SPLIT DATASETS` | Dataset is an AP domain **and** split **and not** a SUPP/SQ dataset | `is_ap AND is_split AND NOT is_supp` | + ### Data Structures Alternative to Classes/Domains, you can specify data structures: