Skip to content

DiagnosticReport Profile

Canonical../StructureDefinition/nexus-emr-core-diagnosticreport
Statusdraft · 1.26.0
BaseDiagnosticReport (constraint)
SourceFSH · JSON

Defines the Nexus EMR FHIR profile for DiagnosticReport resources, based on CA-Core constraints, for aggregating diagnostic reports (e.g., Lab, Imaging) from multiple EMRs.

Access

What the endpoint offers

Declared for DiagnosticReport by the capability statements this IG publishes. One row per statement; follow it for the rest of what that statement says about this type.

Capability statement Interactions Search parameters
Server Capability Statement read vread history-instance search-type create update delete none declared

A cell reading none declared means that statement declares none, which is not the same as the endpoint having none. See how to read a capability statement for what a declared interaction and a declared search parameter do -- and do not -- promise.

SMART on FHIR scopes

DiagnosticReport is reachable by a SMART on FHIR app. These are the scopes an app can request, and the platform permission each one resolves to.

Request this scope Grants Permission required
user/DiagnosticReport.rs Read and search diagnosticreport:read
user/DiagnosticReport.cu Create and update diagnosticreport:write
user/DiagnosticReport.d Delete diagnosticreport:delete
user/DiagnosticReport.cruds Everything above diagnosticreport:read, diagnosticreport:write, diagnosticreport:delete

DiagnosticReport is in the FHIR patient compartment, so every suffix above also works with the patient context (patient/DiagnosticReport.rs), which narrows the grant to the launch patient's records. The permission required is the same either way.

Reading the suffix

A clinical scope is <context>/<ResourceType>.<interactions>.

  • Context is patient (the launch patient's data only, and only for resource types in the FHIR patient compartment) or user (everything the authenticated user may see, valid for any type). There is no system context.
  • Interactions are the letters c create, r read, u update, d delete, s search, written in cruds order. Order does not matter on the way in: DiagnosticReport.sr and DiagnosticReport.rs are the same scope.
  • The older SMART v1 suffixes still work and fold on arrival: .read becomes .rs, .write becomes .cud, and .* becomes .cruds.
  • Wildcards (patient/*.rs) expand over the SMART-exposed resource types only, never over everything this IG profiles.

Ask for a whole permission, or none of it

The platform has one read permission covering both r and s, and one write permission covering both c and u. A scope asking for half of either could only be granted by handing over more than it asked for, so it is refused rather than quietly widened: request DiagnosticReport.rs, not DiagnosticReport.r.

An unrecognised or ungrantable scope is rejected outright. It never silently resolves to an empty grant, which a caller could mistake for "no narrowing needed".