Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

@rule_1

@read @episode @encounter @observation @condition @service_request @diagnostic_report

...

Scenario: Doctor with active declaration can read all patient data

...

Given Active declaration with patient

...

And declaration from the same MSP

...

When I require read access

...

Then I can read

...

@rule_2

@read @episode @service_request @diagnostic_report

...


...


Rule typeDescription
Based on declarationDoctor with an active declaration can access all the patient's medical data.
Based on context episodeUser can read medical data, that was collected during an episode of care, that user has access to.
Based on diagnostic reportUser can read medical data, that was collected as a part of a diagnostic report, managed by the user's legal entity.
Based on origin episodeDoctor can read medical data, that was collected as a part of a diagnostic report or episode of care, that user has access to.
Episode of care, that contains this service request,  is considered as an origin episode in that case. 


on context episode_request@rule_5 @read @episode @encounter @observation @condition @allergy_intolerance @immunization @risk_assessment @device @medication_statement with active approval all the data of specified in approval episodesGiven Active approval on episode can readBased on context episode
encounter
observation
condition
service request
@rule_6 @read @diagnostic_report @encounter diagnostic report originated by episode Entity originated by mine MSP episode on origin episode
by iddiagnostic repost
RuleBaseResourceRoutesContextImplementationSource of context


@rule_1

@read @episode @encounter @observation @condition @service_request @diagnostic_report



Scenario: Doctor with active declaration can read all patient data


Given Active declaration with patient


And declaration from the same MSP


When I require read access


Then I can read









Based on  declaration









episodeby idpatient_id









There is an active declaration between the patient and the doctor in OPS









patient_id from URL








by search params
encounter


by id
by search params
by id in episode context
by search params in episode context
observation


by id
by search params
by id in episode context
by search params in episode context
conditionby id
by search params
by is id in episode context
by search params in episode context
serviceby idby search paramsby id in episode contextdiagnostic_reportby idby search params
@rule_4 @read @episode @encounter @observation @condition @allergy_intolerance @immunization @risk_assessment @device @medication_statement @service_request @diagnostic_report
Scenario: Doctor with active approval can read all the data of specified in approval patientGiven Active approval on patientWhen I require read accessThen I can readnot implemented yet_requestby id
by search params
diagnostic_reportby id
by search params








@rule_2

@read @episode @service_request @diagnostic_report




Scenario: Doctor
can read
entity created in the doctors MSP

Given Entity has been created on my MSP

When I require read access

Then I
episodediagnostic report
can read














episodeby idepisodeepisode.managing_organization==token.client_idDB.episode
by search paramssearch param {managing_organization} from URL
service_request

by idservice requestservice_request.managing_organization==token.client_id

DB.service_request
by search paramssearch param {managing_organization} from URL
diagnostic_reportby iddiagnostic_reportdiagnostic_report.managing_organization==token.client_idDB.diagnostic_report
by search paramssearch param {managing_organization} from URL








@rule_3 @read @encounter @observation @condition @service_request @diagnostic_report

Scenario: Doctor can read
all the data of episodes created in the doctors MSP

Given
Episode context has been
created on my MSP

When I require read access

Then I can read


Based encounteron context episodeencounterby idepisode















episode.managing_organization==token.client_id















DB.encounter.episode
by search paramssearch param {episode_id} from URL
by id in episode contextepisode_id from URL (path)
by search params in episode context
observationby idDB.observation.episode
by search params
@rule_7 @read @observation
Scenario: Doctor can read all the data of diagnostic report originated by episode created in the doctors MSPGiven Diagnostic report context has been originated by mine MSP episodeWhen I require read accessThen I can readBased on origin episodeobservationby idsearch param {episode_id} from URL
by id in episode contextepisode_id from URL (path)
by search params in episode context
conditionby idDB.condition.episode
by search params
@rule_8 @read @observation @condition @allergy_intolerance @immunization @risk_assessment @device @medication_statement @service_request @diagnostic_report
Scenario: Doctor can read all the data of encounter originated by episode created in the doctors MSPGiven Encounter context has been originated by mine MSP episodeWhen I require read accessThen I can readBased on origin episodeobservationby idby search paramsconditionby idby search paramsservice requestby idby search paramsdiagnostic_reportby idby search params
RuleRule typeResourceRouteСontextLogicContext source

@rule_1

search param {episode_id} from URL
by is in episode context
episode_id from URL (path)
by search params in episode context
service_requestby idDB.service_request.encounter.episode.managing_organization
by search paramssearch param {episode_id} from URL
by id in episode contextepisode_id from URL (path)
diagnostic_reportby idDB.diagnostic_report.encounter.episode.managing_organization
by search paramscontext_episode_id from URL (path)








@rule_4 @read @episode @encounter @observation @condition @allergy_intolerance @immunization @risk_assessment @device @medication_statement @service_request @diagnostic_report

Scenario: Doctor with active approval can read all the data of specified in approval patient

Given Active approval on patient

When I require read access

Then I can read


not implemented yet












@rule_5 @read @episode @encounter @observation @condition @allergy_intolerance @immunization @risk_assessment @device @medication_statement @service_request @diagnostic_report

Scenario: Doctor with active
declaration
approval can read all
patient
the data of specified in approval episodes

Given Active
declaration with patientAnd declaration from the same MSP
approval on episode

When I require read access

Then I can read




















Based on
declaration
context episode

















episodeby
idpatient
for all:{patient_
id
} form URL



by search params


encounter


by id


by search params
in episode context



by id
in episode context


by search params in episode context


observation


by id


by search params
in episode context



by id
in episode context


by search params in episode context


condition


by id


by search params
in episode context



by id
in episode context
by search params



by search params in episode context


service
_
request

by id


by search params


by id in episode context


diagnostic
_
reportby id


by search params










@rule_
2
6@read
@episode @service_request
@diagnostic_report @encounter

Scenario: Doctor can read
entity
diagnostic report originated by episode created in the doctors MSP

Given Entity has been
created on my MSP
originated by mine MSP episode

When I require read access

Then I can read





Based on origin episode


encounterby id


by search params


diagnostic repostby id


by search params










@rule_
5
7@read
@episode @encounter
@observation
@condition @allergy_intolerance @immunization @risk_assessment @device @medication_statement @service_request @diagnostic_report

Scenario: Doctor
with active approval
can read all the data of
specified in approval episodesGiven Active approval on
diagnostic report originated by episode created in the doctors MSP

Given Diagnostic report context has been originated by mine MSP episode

When I require read access

Then I can read


Based on
approval
episodeby idnoneepisode.id in approvals.permitted_resources 

by id: selected from DB

by search param: {episode_id} or {context_episode_id} from URL

encounterby idepisodeby search paramobservationby idby search paramcondition
origin episodeobservationby id


by search
param
params










@rule_8 @read @observation @condition @allergy_intolerance @immunization @risk_assessment @device @medication_statement @service_request @diagnostic_report

Scenario: Doctor can read all the data of encounter originated by episode
,
created in the doctors MSP

Given Encounter context has been originated by mine MSP episode

When I require read access

Then I can read


Based on origin episodeobservationby id
encountercontext.origin_episode.managing_organization==token.client_id




by search params


conditionby id
: selected from DB




by search
param: {encounter_id} from URLby search paramcondition
params


service requestby id



by search
param
params


diagnostic_reportby
idencounter.origin_episode.managing_organization==token.client_
id



by
search param
search params