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.