Table of Contents |
---|
...
EpisodeOfCare.search | |||
User Type | EpisodeOfCare Context | Patient Context | CareTeam Context |
---|---|---|---|
Practitioner | must not be present | optional but when present: must match Patient search parameter | required: Must match CareTeam search parameter |
Patient | must not be present | Always present: must match Patient search parameter |
|
System | - | - | - |
Condition | ||||
User Type | EpisodeOfCare Context | Patient Context | CareTeam Context | |
---|---|---|---|---|
Practitioner | required: must match Condition.episodeOfCare | required: must match Condition.subject | - | |
Patient | required: must match Condition.episodeOfCare | required: must match Condition.subject | - | |
System | - | - | - |
Provenance.read | |||
User Type | EpisodeOfCare Context | CareTeam Context | |
---|---|---|---|
Practitioner | required: must match Provenance.target | - | |
Patient | required: must match Provenance.target | - | |
System | - | - |
...
Provenance.search | |||
User Type | EpisodeOfCare Context | CareTeam Context | |
---|---|---|---|
Practitioner | required: must match EpisodeOfCare search parameter (provenance.target) | - | |
Patient | required: must match EpisodeOfCare search parameter (provenance.target) | - | |
System | - | - |
Consent.create/read/patch | |||
User Type | EpisodeOfCare Context | Patient context | CareTeam Context |
---|---|---|---|
Practitioner | Required Must match data.reference | Required Must match data.patient | - |
Patient | Required Must match data.reference | Required Must match data.patient | - |
System | - | - | - |
Consent.search | ||
User Type | EpisodeOfCare Context | CareTeam Context |
---|---|---|
Practitioner | required: must match EpisodeOfCare search parameter (consent.data.reference) | - |
Patient | required: must match EpisodeOfCare search parameter (consent.data.reference) | - |
System | - | - |
...
Goal Create/Read/Update | ||||
User Type | Patient Context | EpisodeOfCare Context | CareTeam Context | |
---|---|---|---|---|
Practitioner- | required: Must match Goal.subject | required: must match Goal.addresses.episodeOfCare | required: must match Goal.addresses.episodeOfCare.team or Careplan.careteam for the CarePlan that the Goal.addresses ServiceRequest belongs to. | |
Patient | required: Must match Goal.subject | - | - | |
System | - | - | - |
...
CommunicationRequest Create/Read/Update/Delete | ||||
User Type | EpisodeOfCare Context | Patient Context | CareTeam Context | Details |
---|---|---|---|---|
Practitioner | required must match CommunicationRequest.episodeOfCare | not checkedrequired must match CommunicationRequest.recipient | required must match CommunicationRequest.recipient if recipient contains a careteam | |
Patient | optional but when present: must match CommunicationRequest.episodeOfCare | required must match CommunicationRequest.recipient | - | Update: Only status |
System | - | - |
...
ClinicalImpression create/read/update | ||||
User Type | EpisodeOfCare Context | Patient Context | CareTeam Context | |
---|---|---|---|---|
Practitioner | required: must match ClinicalImpression.episodeOfCare- | required: must be in ClinicalImpressions.match ClinicalImpression.subject | required: must be in ClinicalImpressions.ehealth-careplan.careTeam or ClinicalImpressions.episodeOfCare.team | |
Patient | optional but when present: must match ClinicalImpression.episodeOfCare | required when EOC context not present: must match ClinicalImpression.subject | - | |
System | - | - | - |
...
Task create/read/update | ||||
User Type | EpisodeOfCare Context | Patient Context | CareTeam Context / UserId | Extra Permission |
---|---|---|---|---|
Practitioner | optional but when present: must match Task.episodeOfCare | optional, but when present: must match Task.episodeOfCare.subjectOnly checked if EOC context is not present: | CareTeam Context must match Task.responsible | User must have at least one corresponding restriction category privilege in Task.restriction-category. |
UserID must match Task.responsible, Task.owner or Task.requester | ||||
Patient | optional but when present: must match Task.episodeOfCare | required when EOC context not present: must match Task.episodeOfCare.subject | UserID must match Task.responsible, Task.owner or Task.requester | |
System | - | - | - |
...
Communication create/patch | ||||
User Type | EpisodeOfCare Context | Patient Context | CareTeam Context | Extra permission |
---|---|---|---|---|
Practitioner | optional but when present: must match communication.episodeOfCare | required if EpisodeOfCare context not present: must match communication.subjectOnly checked if EpisodeOfCare Context is not present. | A match must be found either through the Careteam or the UserID
| |
Patient | - | required: must match communication.subject | - | communication.sender must match AuthToken.userId |
System | - | - | - |
...
QuestionnaireResponse read | |||
User Type | EpisodeOfCare Context | Patient Context | CareTeam Context |
---|---|---|---|
Practitioner | required: must match questionnaireResponse.episodeOfCare | -- | required: If the CareTeam is assigned on the EpisodeOfCare:
If the Careteam is assigned on the CarePlan:
|
Patient | optional but when present: must match questionnaireResponse.episodeOfCare | required when EOC context not present: must match questionnaireResponse.subject | -- |
System | -- | -- | -- |
...
Media search | |||
User Type | EpisodeOfCare Context | Patient Context | CareTeam Context |
---|---|---|---|
Practitioner | required: search param must match the context | -- | required: If the CareTeam is assigned on the EpisodeOfCare:
If the Careteam is assigned on the CarePlan:
|
Patient | optional but when present: search param must match the context | required when EOC context not present: search param must match the context | -- |
System | -- | -- | -- |
$submit-measurement | ||
User Type | EpisodeOfCare Context | Patient Context |
---|---|---|
Practitioner | required | required |
Patient | required | required |
System | -- | -- |
$search-measurements | |||
User Type | EpisodeOfCare Context | Patient Context | CareTeam Context |
---|---|---|---|
Practitioner | required: search param must match the context | -- | required: If the CareTeam is assigned on the EpisodeOfCare:
If the Careteam is assigned on the CarePlan:
|
Patient | optional but when present: search param must match the context | required when EOC context not present: search param must match the context | -- |
System | -- | -- | -- |
...
DeviceUseStatement read | ||
User Type | Patient Context | Organization Context |
---|---|---|
SSL supplier/Practitioner | required must match DeviceUseStatement.subject | - |
Patient | must match a DeviceUseStatement.subject | - |
System | - | - |
Device/DeviceMetric/DeviceUseStatement - Work in Progress
Device/DeviceMetric create | ||
User Type | Organization Context | Patient Context |
---|---|---|
SSL supplier/Practitioner | required must match the Device.owner organization when non-privately owned | - |
Patient (Must be privately owned device) | - | must match a DeviceUseStatement where:
or have no related DeviceUseStatement. |
System | - | - |
Device/DeviceMetric update/delete | ||
User Type | Organization Context | Patient Context |
---|---|---|
SSL supplier/Practitioner | required must match the Device.owner organization when non-privately owned | Optional but when present: must match a DeviceUseStatement where:
|
Patient | - | must match a DeviceUseStatement where:
or have no related DeviceUseStatement. |
System | - |
Device read | ||
User Type | Organization Context | Patient Context |
---|---|---|
SSL supplier/Practitioner | If patient context is not present and non-privately owned device: Must match device.owner | Optional but when present: must match a DeviceUseStatement where:
|
Patient (Must be privately owned device) | - | must match a DeviceUseStatement where:
or have no related DeviceUseStatement. |
System | - |
DeviceUseStatement create/update | ||
User Type | Organization Context | Patient Context |
---|---|---|
SSL supplier/Practitioner | required must match the Device.owner organization | required must match DeviceUseStatement.subject |
Patient (Must be privately owned device) | must match a DeviceUseStatement where:
| must match a DeviceUseStatement where:
|
System | - |
DeviceUseStatement read | ||
User Type | Organization Context | Patient Context |
---|---|---|
SSL supplier/Practitioner | - | - |
Patient | - | - |
System | - | - |
Questionnaire
Questionnaire | ||||
User Type | FHIR Operation | Organization Context | Property updated | Role needed |
---|---|---|---|---|
Practitioner / Patient | create | required: must match Questionnaire.modifierRole.reference | - | owner |
update | required: must match Questionnaire.modifierRole.reference | Questionnaire.modifierRole | owner | |
Not Questionnaire.modifierRole | owner or co-author | |||
delete | required: must match Questionnaire.modifierRole.reference | - | owner | |
read/search | - | - | - | |
System | - | - | - | - |
...
realm_access.role | Patient Context | Episode of Care Context | CareTeam Context | Organization Context | Extra Rules / Comments |
---|---|---|---|---|---|
Patient.read | R* | R* | REGULAR SEARCH: In order to perform regular Patient Search, the user MUST have the Patient Context. LIMITED SEARCH (Dashboard Search): It is also possible to perform a patient search witha CareTeam Context instead of a Patient Context. In that case, the patients are then retrieved from EpisodesOfCare and CarePlan objects that the CareTeam is involved in. NOTE: The patient resources that are returned from this search are limited and as such only the following information is returned:
*R - THE CONTEXTS ARE MUTUALLY EXCLUSIVE, AS SUCH IF BOTH CONTEXTS ARE PROVIDED IN THE TOKEN, ONLY THE PATIENT CONTEXT IS USED. | ||
Patient.write | R | 1: FHIR operations "create" and "update" are not available on the Patient resource. 2: Only certain attributes are allowed to be patched using HTTP PATCH | |||
Patient$updatePatientWithSKRSData | |||||
Patient$createPatient | |||||
Appointment.read | U | U | For non-group appointments: 1: If an appointment involves a patient, then that patient must be in context 2: The appointment can be read if
3: Searching
| ||
Appointment.write | U | U | For non-group appointments: 1: If an appointment involves a patient, then that patient must be in context 2: The appointment can be written if
| ||
Appointment$exportAsiCal | U | U | Same rules apply as for reading appointments Note: Only PRACTITIONER/SSL users can see the names of Practitioner participants in the exported iCal object | ||
RelatedPerson.read | R | Only related persons to the patient in context can be read | |||
RelatedPerson.write | R | Only related persons to the patient in context can be written | |||
Communication.read | U | If the message has a restriction category X, the corrosponding RestrictionCategory.X role must be present in the realm_access list. 1: PATIENT users can read
2: PRACTITIONER and SSL users can read
3: Only SYSTEM users can read communication from DEVICE senders | |||
Communication.write | U | 1: Communication must have exactly one sender and one recipient 2: Communication with category "note" can only be created/patched/deleted if user = sender and (recipient = sender or recipient = a CareTeam). 3: PATIENT users
4: PRACTITIONER and SSL users
| |||
Person$match |
...