Skip to main content

DiagnosticReport

Overview

The DiagnosticReport resource provides the findings and interpretation of diagnostic tests performed on patients, groups of patients, devices, and locations, and/or specimens derived from these. This includes laboratory results, imaging reports, pathology findings, and other diagnostic studies.

Use Cases

  • Laboratory result reporting and review
  • Radiology and imaging report distribution
  • Pathology findings documentation
  • Clinical decision support based on diagnostic results

Relationships

  • Patient: The subject of the diagnostic report
  • Practitioner: Healthcare providers who performed or interpreted the test
  • Observation: Individual test results referenced by the report
  • Specimen: Samples used for laboratory testing

Resource Schema

Key Fields

FieldTypeDescriptionRequired
idstringUnique identifier for the resourceYes
statuscodeReport status (registered, partial, preliminary, final)Yes
categoryCodeableConcept[]Service category (LAB, RAD, etc.)No
codeCodeableConceptName/code for this diagnostic reportYes
subjectReference(Patient)The subject of the reportYes
effectiveDateTimedateTimeClinically relevant time/time-period for reportNo
issuedinstantDateTime this version was madeNo
performerReference[]Responsible diagnostic serviceNo
resultReference(Observation)[]Observations included in the reportNo

JSON Example

{
"resourceType": "DiagnosticReport",
"id": "example-lab-123",
"status": "final",
"category": [
{
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/v2-0074",
"code": "LAB",
"display": "Laboratory"
}
]
}
],
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "58410-2",
"display": "Complete blood count (hemogram) panel"
}
]
},
"subject": {
"reference": "Patient/123"
},
"effectiveDateTime": "2023-01-15T09:30:00Z",
"issued": "2023-01-15T14:30:00Z",
"result": [
{
"reference": "Observation/hemoglobin-123"
}
]
}

Operations

The Certified API DiagnosticReport resource supports the following operations. However, support varies by the targeted CareRecord or solution.

CareRecord / SolutionCreateReadUpdateSearch
GEHRIMEDYesYesYesYes
myAvatarYesYesYesYes
myEvolvYesYesYesYes
myUnityYesYesYesYes
TheraOfficeYesYesYesYes

Create

Create a new DiagnosticReport resource.

POST /DiagnosticReport
Content-Type: application/fhir+json

{
"resourceType": "DiagnosticReport",
"status": "final",
"category": [{
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/v2-0074",
"code": "LAB",
"display": "Laboratory"
}]
}],
"code": {
"coding": [{
"system": "http://loinc.org",
"code": "58410-2",
"display": "Complete blood count (hemogram) panel"
}]
},
"subject": {
"reference": "Patient/123"
},
"effectiveDateTime": "2024-01-15T09:30:00Z"
}

Read

Retrieves a specific DiagnosticReport resource by its unique identifier.

Endpoint: GET /DiagnosticReport/{id}

Update

Update an existing DiagnosticReport resource.

PUT /DiagnosticReport/{id}
Content-Type: application/fhir+json

{
"resourceType": "DiagnosticReport",
"id": "{id}",
"status": "final",
"category": [{
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/v2-0074",
"code": "LAB",
"display": "Laboratory"
}]
}],
"code": {
"coding": [{
"system": "http://loinc.org",
"code": "58410-2",
"display": "Complete blood count (hemogram) panel"
}]
},
"subject": {
"reference": "Patient/123"
},
"effectiveDateTime": "2024-01-15T09:30:00Z"
}

Search for diagnostic reports using various criteria.

GET Method

Use GET for simple searches with parameters in the query string.

GET /DiagnosticReport?parameter=value

POST Method

Use POST for complex searches with form-encoded parameters.

POST /DiagnosticReport/_search
info

Not all Netsmart solutions support DiagnosticReport search. See supported operations table above and consult your target solution's documentation for more information.

Search Parameters

Patient-based Search:

ParameterTypeRequiredDescriptionExample
patientreferenceYesThe subject of the report if a patient**Yes**
categorytokenNoWhich diagnostic discipline/department created the reportcategory=value
codetokenNoThe code for the report, as opposed to codes for the atomic resultscode=value
datedateNoThe clinically relevant time of the reportdate=value
statustokenNoThe status of the reportstatus=value
_lastUpdateddateNoOnly return resources which were last updated as specified by the given range_lastUpdated=value
_revincludespecialNoInclude Provenance resource(s) that reference the matched search results. Allowed: "Provenance:target"_revinclude=value

ID-based Search:

ParameterTypeRequiredDescriptionExample
_idstringYesThe ID of the resource_id=value
_lastUpdateddateNoOnly return resources which were last updated as specified by the given range_lastUpdated=value
_revincludespecialNoInclude Provenance resource(s) that reference the matched search results. Allowed: "Provenance:target"_revinclude=value

Examples

Create a DiagnosticReport

curl -X POST https://fhir.netsmartcloud.com/provider/system-access/v2/{tenant-id}/DiagnosticReport \
-H "Authorization: Bearer {token}" \
-H "Accept: application/fhir+json" \
-H "Content-Type: application/fhir+json" \
-d '{
"resourceType": "DiagnosticReport",
"status": "final",
"category": [{
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/v2-0074",
"code": "LAB",
"display": "Laboratory"
}]
}],
"code": {
"coding": [{
"system": "http://loinc.org",
"code": "58410-2",
"display": "Complete blood count (hemogram) panel"
}]
},
"subject": {
"reference": "Patient/123"
},
"effectiveDateTime": "2024-01-15T09:30:00Z"
}'

Update a DiagnosticReport

curl -X PUT https://fhir.netsmartcloud.com/provider/system-access/v2/{tenant-id}/DiagnosticReport/report-123 \
-H "Authorization: Bearer {token}" \
-H "Accept: application/fhir+json" \
-H "Content-Type: application/fhir+json" \
-d '{
"resourceType": "DiagnosticReport",
"id": "report-123",
"status": "final",
"category": [{
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/v2-0074",
"code": "LAB",
"display": "Laboratory"
}]
}],
"code": {
"coding": [{
"system": "http://loinc.org",
"code": "58410-2",
"display": "Complete blood count (hemogram) panel"
}]
},
"subject": {
"reference": "Patient/123"
},
"effectiveDateTime": "2024-01-15T09:30:00Z",
"issued": "2024-01-15T14:30:00Z"
}'

Read Examples

Read DiagnosticReport by ID
curl -X GET https://fhir.netsmartcloud.com/provider/system-access/v2/{tenant-id}/DiagnosticReport/123 \
-H "Authorization: Bearer {token}" \
-H "Accept: application/fhir+json"

Search Examples

Via POST (Recommended)

The POST method is recommended as it keeps health information out of the URL.

Search by Patient
curl -X POST https://fhir.netsmartcloud.com/provider/system-access/v2/{tenant-id}/DiagnosticReport/_search \
-H "Authorization: Bearer {token}" \
-H "Accept: application/fhir+json" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "patient=Patient/123"
Search by Patient and Category
curl -X POST https://fhir.netsmartcloud.com/provider/system-access/v2/{tenant-id}/DiagnosticReport/_search \
-H "Authorization: Bearer {token}" \
-H "Accept: application/fhir+json" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "patient=Patient/123" \
-d "category=LAB"

Via GET

Search by Patient
curl -X GET "https://fhir.netsmartcloud.com/provider/system-access/v2/{tenant-id}/DiagnosticReport?patient=Patient/123" \
-H "Authorization: Bearer {token}" \
-H "Accept: application/fhir+json"
Search by Patient and Date Range
curl -X GET "https://fhir.netsmartcloud.com/provider/system-access/v2/{tenant-id}/DiagnosticReport?patient=Patient/123&date=ge2023-01-01&date=le2023-12-31" \
-H "Authorization: Bearer {token}" \
-H "Accept: application/fhir+json"

Integration Patterns

Common Workflows

  1. Laboratory Results Review

    • Search for recent lab reports by patient
    • Retrieve specific diagnostic reports with results
    • Monitor trending values across multiple reports
  2. Clinical Decision Support

    • Query diagnostic reports before treatment decisions
    • Integrate with clinical guidelines and protocols
    • Alert providers to critical or abnormal results
  3. Care Coordination

    • Share diagnostic findings across care teams
    • Include reports in care transitions and referrals
    • Support population health management initiatives
  • Patient: Subject of the diagnostic testing
  • Observation: Individual test results and measurements
  • Practitioner: Healthcare providers involved in testing
  • Specimen: Samples collected for laboratory analysis
  • ServiceRequest: Orders that initiated the diagnostic testing

Error Handling

For comprehensive error handling information, including HTTP status codes, error formats, and troubleshooting guidance, see the Error Handling documentation.

Common error scenarios for DiagnosticReport operations:

  • 404 Not Found: DiagnosticReport resource does not exist
  • 400 Bad Request: Invalid search parameters or malformed requests
  • 401 Unauthorized: Missing or invalid authentication token
  • 403 Forbidden: Insufficient permissions to access patient data

Supported Profiles

This API supports the following FHIR profiles:

The exact profiles supported are defined in the CapabilityStatement for each environment and can be retrieved via the /metadata endpoint.