ЕСОЗ - публічна документація
RCC (CSI-3150) Submit Encounter Data Package
Validate Diagnostic Report
Validate diagnostic reports ids as primary keys (Submit Encounter Data Package#Primarykeyvalidation)
Validate based_on as Reference(Submit Encounter Data Package#Referencevalidation)
Validate that service_request, referenced as based_on, is
in status is active or program_processing_status=in_progress (any status is valid in case program_processing_status= in_progress)
in case of error return 409 "Invalid service request status"
if program is defined than used_by_legal_entity==token.client_id OR null
in case of error return 409 "Service request is used by another legal_entity"
if program is defined than program_processing_status == new, in_queue or in_progress
check that service_request contains based_on parameter
in case based_on present in service_request
verify care_plan:
It should be in active status
Care plan's period end (if exist) should be greater than current date or equal.
verify activity:
It has activity.detail.kind=service_request; activity.detail.product_reference=service_id.
It has scheduled, in_progress status
For an old activities (has no units in quantity) validate remaining_quantity as described at Submit Encounter Data Package#Relatedcareplanvalidation
in case based_on not present in request skip previous validations.
Check if service request quantity is not exhausted as described at related service request validation
category
Validate $.diagnostic_report[*].categories
is an array with only one item
in case of error return 422 "Expected a maximum of 1 items but got <number of elements>"
Validate that $.diagnostic_report[*].category.coding.code is
eHealth/diagnostic_report_categories
dictionary, requiredin case of error return 422 "value is not allowed in enum"
Validate that diagnostic reports category corresponds to service category, that is references as code in DR
$.diagnostic_report[*].category=PRM.services.category where PRM.services.id=$.diagnostic_report[*].code.identifier.value
in case of error return 422 "Diagnostic report category does not match with the service category"
Validate code
Validate code as Reference(Submit Encounter Data Package#Referencevalidation)
If service_requests.code.identifier.value is service, validate $diagnostic_report.code.identifier.value = service_requests.code.identifier.value
in case error return 409, "Service in diagnostic_report differ from service in service request"
if service_requests.code.identifier.value is service_group, validate $diagnostic_report.code.identifier.value in (SELECT service_id from service_inclusions where service_group_id='service_requests.code.identifier.value')
in case error return 409, "Service in diagnostic_report differ from services in service request's service_group"
Validate diagnostic_report.service.is_active = true
in case error return 409, "Service should be active"
Validate effective_period and effective_date_time:
Check that only one of this parameters present
in case error return 422 "Only one of the parameters must be present"
Validate effective_period as a period (Period Validation)
Validate that effective_period.end is within acceptable limits
$.diagnostic_reports[*].effective_period.end <= diagnostic_reports[*].issued
in case of error return 422 "End date time must be less than or equal the issued date time"
Validate that effective_date_time is within acceptable limits
$.diagnostic_reports[*].effective_date_time <= diagnostic_reports[*].issued
in case of error return 422 "Effective date time must be less than or equal the issued date time"
Validate that issued is within acceptable limits
$.diagnostic_reports[*].issued<= current date_time
in case of error 422 "Asserted date must be in past"
$.diagnostic_reports[*].issued>=current_date-diagnostic_report_max_days_passed
in case of error 422 "Issued must be greater than {{current_date-diagnostic_report_max_days_passed}}"
Related content
ЕСОЗ - публічна документація