Skip to content

Commit

Permalink
First pass at Access Policy Profile
Browse files Browse the repository at this point in the history
  • Loading branch information
torstees committed Jan 3, 2024
1 parent b655a35 commit c46f9e5
Show file tree
Hide file tree
Showing 7 changed files with 80 additions and 7 deletions.
2 changes: 2 additions & 0 deletions input/fsh/Alias.fsh
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,5 @@ Alias: $ncpi = https://nih-ncpi.github.io/ncpi-fhir-ig-2/CodeSystem/ncpi
Alias: $study-name-type = https://nih-ncpi.github.io/ncpi-fhir-ig-2/CodeSystem/study-name-type
Alias: $ncpi-collection-type = https://nih-ncpi.github.ioo/ncpi-fhir-ig-2/CodeSystem/collection-type
Alias: $ncpi-data-access-code = https://nih-ncpi.github.ioo/ncpi-fhir-ig-2/CodeSystem/data-access-code

Alias: $mesh = urn:oid:2.16.840.1.113883.6.177
8 changes: 8 additions & 0 deletions input/fsh/Extension-research-web-link.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@

Extension: ResearchWebLink
Id: research-web-Link
Title: "Research Web Link"
Description: "A URL pointing to a either a research study's website, an online document or other research related site or document."
* valueUrl 1..1
* valueUrl ^short = "The URL associated with the document or related website."

46 changes: 46 additions & 0 deletions input/fsh/Profile-research-access-policy.fsh
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,52 @@ Description: "Enumerated list of access codes such as dbGaP consent codes among
* ^experimental = false
* include codes from system $ncpi-data-access-code

ValueSet: MeshTerms
Id: mesh-terms
Title: "MeSH Terms"
Description: "Example terms from Medical Subject Headings (MeSH) Ontology"
* ^version = "0.1.0"
* ^status = #draft
* ^experimental = false
* include codes from system $mesh

Invariant: completed-consent-code
Description: "If category is DS then there must be a ResearchConsentDiseaseAbbreviation"
Expression: "provision.purpose.where(code = 'DS').empty() or provision.extension.where(url='https://nih-ncpi.github.io/ncpi-fhir-ig/StructureDefinition/research-disease-use-limitation').exists()"
Severity: #error

Extension: ResearchDiseaseUseLimitation
Id: research-disease-use-limitation
Title: "Research Usage Limitation Disease Code"
Description: "Coding associated with limitation on what research can be performed this data."
* value[x] only CodeableConcept
* valueCodeableConcept from mesh-terms (example)

Extension: AccessPolicyDescription
Id: access-policy-description
Title: "Access Policy Description"
Description: "Descriptive text summarizing the policy restrictions and other details associated with this access provision."
* valueMarkdown 1..1
* valueMarkdown ^short = "Descriptive text summarizing the policy restrictions and other details associated with this access provision."

Profile: NcpiResearchAccessPolicy
Parent: Consent
Id: ncpi-research-access-policy
Title: "NCPI Research Access Policy"
Description: "Limitations and/or requirements that define how a user may gain access to a particular set of data."
* ^version = "0.1.0"
* ^status = #draft
* category = http://terminology.hl7.org/CodeSystem/consentcategorycodes#research "Research Information Access"
* provision.purpose from research-data-access-code-vs (extensible)
* provision.extension contains ResearchDiseaseUseLimitation named diseaseUseLimitation 0..1
* provision.extension[diseaseUseLimitation] ^short = "Consent Code Disease Abbreviation"
* obeys completed-consent-code
* extension contains AccessPolicyDescription named description 0..1
* extension[description] ^short = "Descriptive text summarizing the policy restrictions and other details associated with this access provision."
// This may be somewhat unnecessary
* extension contains ResearchWebLink named website 0..1
* extension[website] ^short = "URL describing the policy restrictions in detail."

Logical: CdmResearchDataAccessPolicy
Id: SharedDataModelResearchDataAccessPolicy
Title: "Shared Data Model for Research Data Access Policy"
Expand Down
7 changes: 0 additions & 7 deletions input/fsh/Profile-research-collection.fsh
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,6 @@ Description: "Enumerated list of Collection types"
* ^experimental = false
* include codes from system $ncpi-collection-type

Extension: ResearchWebLink
Id: research-web-Link
Title: "Research Web Link"
Description: "A URL pointing to a either a research study's website, an online document or other research related site or document."
* valueUrl 1..1
* valueUrl ^short = "The URL associated with the document or related website."

Profile: NcpiResearchCollection
Parent: List
Id: ncpi-research-collection
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
### Basic Definition
Access policy communicates the limitations and/or requirements that define how a user may gain access to a particular set of data.

Access policy is limited to describing restrictions that respect the privacy and rights of the participants arising from consents, protocols, or other official documents. It should not be used to describe technical requirements for accessing data.

Access policy is defined using a standard set of codes, with one policy per set of codes that apply to a specified portion of the data. Each Access Policy element also includes a free text field that allows for further description of the policy and necessary steps for gaining access.

For Summary-only submissions, Access Policy elements should be included in order to describe the various data use limitations present in the dataset. For submissions which include data and/or participant records, Access Policy should be associated with the participants and data files to appropriately describe the applicable limitations.

#### Primary Profile Restrictions and Enhancements
* category **must** be assigned __research__.
* a meaningful **description** must be provided using the [Access Policy Description](StructureDefinition-access-policy-description.html) extension.
* a provision.purpose **must** be defined for each distinct research constraint associated with this policy. These codes **must** be selected from the ValueSet representing the codes found in [ResearchDataAccessCodes](CodeSystem-research-data-access-code.html).
* For those policies that are disease specific, the code, DS, **shall** be used and **must** be accompanied by a properly defined [Disease Use Limitation](StructureDefinition-research-disease-use-limitation.html).
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
### Basic Definition
The collection element allows for high level organization of objects into various related groups. One common type of collection is a consortium, but other collections can also be established. Items in a collection can include studies, datasets, or other collections (for example, if consortium A becomes a member of consortium B, the collection that represents consortium A can be added as an item in the collection representing consortium B).

#### Primary Profile Restrictions and Enhancements
* title **must** be defined in order for users to understand the purpose of the collection.
* code **must** be defined and **should** be one of the codes from the CodeSystem, [CollectionType](CodeSystem-collection-type.html), when possible.
* note **should** contain a meaningful description whenever possible.
* there **must** be one or more entries referencing the "contained" resources.
* When possible, a [website](StructureDefinition-research-web-Link.html) should be provided. For Consortium, programs and other entities with formal websites, this should be the one that provides the best overview of the group. For adhoc collections, or those collections that are less formally defined, an online document may be sufficient.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
For use with NCPI Profiles which require a link to a website, where the parent Resource type doesn't provide such a thing.

0 comments on commit c46f9e5

Please sign in to comment.