HL7 FHIR Implementation Guide: Data Access Policies, published by HL7 International / Security. This guide is not an authorized publication; it is the continuous build for version 1.0.0-current built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/data-access-policies/ and changes regularly. See the Directory of published versions
Contents:
This page provides a list of the FHIR artifacts defined as part of this implementation guide.
'Additional' resources that are not yet published in the FHIR core specification.
| Permission |
Permission resource holds access rules for a given data and access request context. |
These define the properties by which a RESTful server can be searched. They can also be used for sorting and including related resources.
| PermissionIdentifierSearchParam |
The unique id for a particular permission |
||||
| PermissionRuleActivityActorSearchParam |
The activity actor mentioned in a permission rule (permit or deny). |
||||
| PermissionRuleDataPeriodSearchParam |
The data period mentioned in a permission rule (permit or deny). |
||||
| PermissionRuleDataResourceSearchParam |
The data resource mentioned in a permission rule (permit or deny). |
||||
| PermissionRuleLimitElementSearchParam |
The element limits mentioned in a permission rule (permit or deny). |
||||
| PermissionStatusSearchParam |
|
These define constraints on FHIR data types for systems conforming to this implementation guide.
| Permission From Consent |
When the provisions of a Consent are encoded using a Permission, this extension is used to indicate the Permission from the Consent. |
These define sets of codes used by systems conforming to this implementation guide.
| Current Roles in MyOrg |
MyOrg current security roles |
| ValueSet for Permission Rule Combining |
Codes identifying rule combining algorithm. |
| ValueSet of Permission Status |
Codes identifying the lifecycle stage of a product. |
These define new code systems used by systems conforming to this implementation guide.
| MyOrg defined Roles CodeSystem |
The codes for Roles in MyOrg Could possibly use the defined valueSet practitioner-role |
| Permission Rule Combining |
Codes identifying the rule combining. See XACML Combining algorithms http://docs.oasis-open.org/xacml/3.0/xacml-3.0-core-spec-cos01-en.html |
| Permission Status |
Codes identifying the lifecycle stage of a product. |
These are example instances that show what data produced and consumed by systems conforming with this implementation guide might look like.
| A Permission with all the Directory rules |
This Permission has all the rules for the Directory.\n\nPermission allowing patient requested access to Practitioners, but protects the Practitioner sensitive location elements. \n\nPresumes Practitioner resources are tagged at the element level following DS4P Inline Security Labels that indicate the sensitive location elements using the |
| A Permission with all the Patient Directory rules |
This Permission has all the rules for the Patient Directory.\n\nPermission allowing patient requested access to Practitioners, but protects the Practitioner sensitive location elements. \n\nPresumes Practitioner resources are tagged at the element level following DS4P Inline Security Labels that indicate the sensitive location elements using the |
| A Permission with all the Patient Directory rules |
This Permission has all the rules for the Patient Directory.\n\nPermission allowing patient requested access to Practitioners, but protects the Practitioner sensitive location elements. \n\nPresumes Practitioner resources are tagged at the element level following DS4P Inline Security Labels that indicate the sensitive location elements using the |
| A base permission example. |
Example of a Base Permission Imported in another Permission |
| A composite permission example that imports another permission as one of the rules. |
Example of a Composite Permission that Imports Another Permission |
| Bundle with permission expressed residual rules to apply |
Example Bundle with included Permission with residual restrictions |
| Consent Deny for Patient Directory |
Consent by the patient to Deny access to the Patient Directory following the Patient Directory policy.
|
| Consent for Patient Directory |
Consent by the patient to allow access to the Patient Directory following the Patient Directory policy.
|
| Consent for Patient Directory by Clinican |
Consent by the Clinician on behalf of the patient to allow access to the Patient Directory following the Patient Directory policy.
|
| Consent that uses Overriding Permission for base rules |
Where there is a Permission resource that describes the base policy, then a Consent can point at that Permission rather than a URL alone. |
| Consent that uses Permission for rules |
Some would prefer to use the Permission rule encoding, and not the Consent.provision; thus the Consent is used to capture the ceremony, and points at a Permission for the rules. |
| Degenerate permission example |
Example of permission |
| Directory permission allowing HR and IT full access |
Example of simple directory admin allowing HR and IT |
| Directory permission with excluding sensitive elements |
Example of authorizing some data in a directory but excluding sensitive elements |
| Dummy MeasureReport example |
Dummy MeasureReport example for completeness sake. No actual use of this resource other than an example target that is NOT patient specific. |
| Dummy Organization example |
Dummy Organization example for completeness sake. No actual use of this resource other than an example target |
| Dummy Patient example |
Dummy patient example for completeness sake. No actual use of this resource other than an example target |
| Dummy Patient example with Religion |
This patient is the same as ex-patient, with the extension for religious affiliation. |
| Dummy Practitioner de-sensitive example |
Dummy Practitioner example. This Practitioner has has been de-sensitized from ex-practitioner-sensitive. Note that because the data has been redacted then .meta.security will have tag |
| Dummy Practitioner example |
Dummy Practitioner example for completeness sake. No actual use of this resource other than an example target |
| Dummy Practitioner sensitive example |
Dummy Practitioner example. This Practitioner has some phone and address information that is tagged as sensitive location information. Note that because of this the Resource is tagged in .meta.security as having inline tags |
| Fine Grained Patient Access to Data |
Fine Grained Patient Access to Data\nThis Permission allows access to Patient resources marked with a TAG_1, but would remove the .address, .birthDate, and .meta\nThis Permission denies access to Patient resources marked with a VIP\n\nTODO Jira FHIR-51070 for potential better way to identify type of resource |
| Permission allowing data authored by a practitioner |
Permission allowing data authored by\n\nThere is a Consent that captures the consent ceremony and setting\n- status is active - so it should be enforced\n- scope is privacy \n- category is LOINC 59284-0 Consent\n- date indicated when the consent is recorded\n- patient is identified\n- performer is the patient\n- organization is identified\n- source indicate a DocumentReference (with included text of the policy)\n- policy url points at this Permission\n\nThis Permission encodes\n- base rule is #permit \n- base rule includes TPO so as to be clear this is a consent about TPO\n- Permits access to data authored by practitioner 1\n- Given that there is only one targeted permit rule, then nothing else is allowed. |
| Permission allowing data authored by a practitioner |
Permission allowing data authored by\n\nThere is a Consent that captures the consent ceremony and setting\n- status is active - so it should be enforced\n- scope is privacy \n- category is LOINC 59284-0 Consent\n- date indicated when the consent is recorded\n- patient is identified\n- performer is the patient\n- organization is identified\n- source indicate a DocumentReference (with included text of the policy)\n- policy url points at this Permission\n\nThis Permission encodes\n- base rule is #permit \n- base rule includes TPO so as to be clear this is a consent about TPO\n- Permits access to data authored by practitioner 1\n- Given that there is only one targeted permit rule, then nothing else is allowed. |
| Permission allowing data to be used, but don't expose sensitive location elements |
Permission allowing patient requested access to Practitioners, but protects the Practitioner sensitive location elements. \n\nPresumes Practitioner resources are tagged at the element level following DS4P Inline Security Labels that indicate the sensitive location elements using the |
| Permission allowing data to be used, but with redisclosure condition |
Permission allowing requested use, but restricting redisclosure\n\nThis Permission encodes\n\n- base rule is #permit\n- base rule includes TPO so as to be clear this is authorizes TPO\n- includes a residual (limit) using code NODSCLCDS |
| Permission allowing most sharing but NOT data authored by a practitioner |
Permission allowing most sharing of data but NOT data authored by a practitioner\n\nThe Consent that captures the consent ceremony and setting:\n- status is active - so it should be enforced\n- scope is privacy \n- category is LOINC 59284-0 Consent\n- date indicated when the consent is recorded\n- patient is identified\n- performer is the patient\n- organization is identified\n- source indicate a DocumentReference (with included text of the policy)\n- policy url points at this Permission\n\nThis Permission encodes\n- base rule includes TPO so as to be clear this is a consent about TPO\n- second rule denying access to data authored by ex-practitioner\n - practitioner 1\n- nothing else is authorized by this Permission |
| Permission allowing most use but NOT a given practitioner |
Permission allowing most use of data but NOT a given practitioner\n\nThis Permission encodes\n- base rule includes TPO so as to be clear this generally authorizes TPO\n- second rule denying access to a given ex-practitioner\n - practitioner 1\n- nothing else is authorized by this Permission |
| Permission allowing most use but expires in a year |
Permission allowing most use of data but expires in a year. Note that this 'year' indication is based on absolute dates of issuing of the Permission, and use of Permission.validity.\n\nThis Permission encodes\n- base rule includes TPO so as to be clear this generally authorizes TPO\n- validity is a period of one year |
| Permission expressing an overriding policy using ABAC |
As an overriding policy, this policy needs to express who can READ, who can CREATE, who can UPDATE, who can DELETE. |
| Permission expressing an overriding policy using RBAC with Resource first |
As an overriding policy, this policy needs to express who can READ, who can CREATE, who can UPDATE, who can DELETE. |
| Permission expressing an overriding policy using RBAC with Role first |
As an overriding policy, this policy needs to express who can READ, who can CREATE, who can UPDATE, who can DELETE. |
| PractitionerRole defining those that are Admin |
Admin |
| PractitionerRole defining those that are Dietician |
Dietician |
| PractitionerRole defining those that are Doctors |
Doctors |
| PractitionerRole defining those that are Janitor |
Janitor |
| PractitionerRole defining those that are Registration |
Registration |
| SANER permission example |
Example of permission for SANER |
| VhDir permission example |
Example of permission for VhDir |
These are resources that are used within this implementation guide that do not fit into one of the other categories.
| Permission-examples |
| Permission-operations |