Profiles & Interactions > Profiles & Interactions
Interaction: Search DiagnosticReport
Search DiagnosticReport
DiagnosticReport search is simple RESTful interactions. It supports retrieving diagnostic reports by identifier, code, patient ID and other parameters. The interaction can be performed by using either GET or POST HTTP commands.
GET [base-search]/[type]{?[parameters]{&_format=[mime-type]}}
This searches all resources of a particular type using the criteria represented in the parameters.
Because of the way that some user agents and proxies treat GET and POST requests, in addition to the GET based search method above, CorHealth also supports a POST based search:
POST [base-search]/[type]/_search{?_format=[mime-type]}
Content-Type: application/x-www-form-urlencoded
param1=value¶m2=value
This has exactly the same semantics as the equivalent GET command.
Note: Supporting GET means that PHI (Personal health information) might appear in search parameters, and therefore in HTTP logs. For this reason logs should be regarded as being as sensitive as the resources themselves. This is a general requirement irrespective of the use of GET.
All these search interactions take a series of parameters that are a series of name=value pairs encoded in the URL (or as an application/x-www-form-urlencoded submission for a POST).
The AND search operator allows any combination of parameter expressions using “&”, and will create a valid search expression. For example:
GET [base-search]/DiagnosticReport?patient.identifier=[id-system-global-base]/ca-on-patient-hcn|12345678&code=http://loinc.org|34133-9&identifier=[id-system-local-base]/diagnostic-report-id|22334455&_include=*&_revinclude=*
If the search fails (cannot be executed, not that there is no matches), the return value is a status code 4xx or 5xx, usually with an OperationOutcome. If the search succeeds, CorHealth returns a 200 OK HTTP status code and the return content is a Bundle with type = searchset containing the results of the search as a collection of resources in a defined order. The result collection can be long, so server may use paging (adapted from RFC 5005 Feed Paging and Archiving) for breaking the collection into pages if appropriate (see Paging section below). The server may also return an OperationOutcome resource within the searchset Bundle entries that contains additional information about the search.
Interaction Diagram
Search DiagnosticReport Interaction
Actor: Client Application
Role: Requests a set of DiagnosticReport resources from the CorHealth Solution based on specified search criteris.
Actor: CorHealth Solution
Role: Returns a Bundle containing DiagnosticReport and other resoruces (if indicated in the request) that match the search criteria specified by the Client Application.
Specification
The FHIR CorHealth specification is based on the HL7 FHIR R4 Search operation.
DiagnosticReport Search Request
The DiagnosticReport Search Request is an HTTP GET operation with multiple query parameters specified in Supported Search Parameters section below. The syntax of the request is
GET [base-search]/DiagnosticReport?patient.identifier=[id-system-global-base]/ca-on-patient-hcn|12345678&code=http://loinc.org|34133-9&identifier=[id-system-local-base]/diagnostic-report-id|22334455&_include=*&_revinclude=*
Note: For more details please reference Supported Search Parameters and Search Examples sections
Supported Profiles
- CorHealth Appointment
- CorHealth DiagnosticReport
- CorHealth DiagnosticReport Procedure
- CorHealth HealthcareService - Site Offlisting Procedure
- CorHealth HealthcareService - Site Service
- CorHealth Organization
- CorHealth OrganizationAffiliation
- CorHealth Patient
- CorHealth Practitioner
- CorHealth PractitionerRole
- CorHealth Procedure
- CorHealth ServiceRequest
- CorHealth ServiceRequest Retrieval
- Wait Time Metric ServiceRequest
- CorHealth Base Observation
- CorHealth Observation 028: Recommended Maximum Wait Time (days)
- CorHealth Observation 029: Wait Time 1
- CorHealth Observation 030: Wait Time 2
- CorHealth Observation 031: Priority Level
- CorHealth Observation 032: Urgency Rating Score
- CorHealth Observation 040: Secondary Reason for Referral
- CorHealth Observation 041: Secondary Reason for Referral Type
- CorHealth Observation 042: Clinical Status Change Date
- CorHealth Observation 043: History of Myocardial Infarction
- CorHealth Observation 044: Canadian Cardiovascular Society Classification
- CorHealth Observation 045: Acute Coronary Syndrome Classification
- CorHealth Observation 046: Cardiogenic Shock
- CorHealth Observation 047: New York Heart Association Functional Classification
- CorHealth Observation 048: Rest Electrocardiogram Ischemic Changes
- CorHealth Observation 049: Exercise Electrocardiogram Risk
- CorHealth Observation 050: Functional Imaging Risk
- CorHealth Observation 051: Left Ventricular Ejection Fraction
- CorHealth Observation 052: Left Ventricular Ejection Fraction Grade
- CorHealth Observation 053: Serum Creatinine
- CorHealth Observation 055: Dialysis
- CorHealth Observation 056: Diabetes
- CorHealth Observation 057: History of Tobacco Use
- CorHealth Observation 058: Cerebral Vascular Disease
- CorHealth Observation 059: Chronic Obstructive Pulmonary Disease
- CorHealth Observation 060: History of Coronary Artery Bypass Graft Surgery
- CorHealth Observation 061: Endocarditis
- CorHealth Observation 062: History of Congestive Heart Failure
- CorHealth Observation 063: Height
- CorHealth Observation 065: Weight
- CorHealth Observation 067: Pre-Procedural Mitral Regurgitation
- CorHealth Observation 068: Mitral Regurgitation Type
- CorHealth Observation 069: Mitral Valve Orifice Area
- CorHealth Observation 070: Pulmonary Artery Systolic Pressure
- CorHealth Observation 071: Left Main Lesion without Bypass Graft
- CorHealth Observation 072: Three Vessel Disease with Proximal Left Anterior Descending Artery
- CorHealth Observation 073: Vein Graft Lesion
- CorHealth Observation 074: Survival Dependent Vessel
- CorHealth Observation 075: Native Stenosis of the Left Main Artery
- CorHealth Observation 076: Native Stenosis of the Proximal Left Anterior Descending Artery
- CorHealth Observation 077: Native Stenosis of the Mid/Distal Left Anterior Descending Artery
- CorHealth Observation 078: Native Stenosis of the Circumflex Artery
- CorHealth Observation 079: Native Stenosis of the Right Coronary Artery
- CorHealth Observation 080: Stenosis of the Left Anterior Descending Artery Graft
- CorHealth Observation 081: Stenosis of the Circumflex Artery Graft
- CorHealth Observation 082: Stenosis of the Right Coronary Artery Graft
- CorHealth Observation 083: Implant Status
- CorHealth Observation 084: Device Indication
- CorHealth Observation 085 and 159: Patient Presentation and Non-Percutaneous Coronary Intervention Capable Hospital
- CorHealth Observation 088: Fibrinolysis Administered
- CorHealth Observation 089 and 090: First Contact with Paramedics Date and Time
- CorHealth Observation 091 and 092: Ambulance Electrocardiogram Date and Time
- CorHealth Observation 093 and 094: Registration Date and Time
- CorHealth Observation 095 and 096: First Hospital Electrocardiogram Date and Time
- CorHealth Observation 097 and 098: Qualifying Electrocardiogram Date and Time
- CorHealth Observation 099 and 100: Fibrinolysis Given Date and Time
- CorHealth Observation 101 and 102: First Balloon Inflation/Device Date and Time
- CorHealth Observation 106: Heart Team Involved in Treatment Decision
- CorHealth Observation 107: Funding Source
- CorHealth Observation 108 and 109: Dates Affecting Readiness to Treat
- CorHealth Observation 113: Removal Reason
- CorHealth Observation 117: Intra-Aortic Balloon Pump
- CorHealth Observation 118: Presence of Coronary Stenosis
- CorHealth Observation 119: Stenosis of the Left Main Artery
- CorHealth Observation 120: Stenosis of the Proximal Left Anterior Descending Artery
- CorHealth Observation 121: Stenosis of the Mid/Distal Left Anterior Descending Artery
- CorHealth Observation 122: Stenosis of the Circumflex Artery
- CorHealth Observation 123: Stenosis of the Right Coronary Artery
- CorHealth Observation 124: Stenosis of the Left Anterior Descending Artery Graft
- CorHealth Observation 125: Stenosis of the Circumflex Artery Graft
- CorHealth Observation 126: Stenosis of the Right Coronary Artery Graft
- CorHealth Observation 127-131 & 177: Lesion Location
- CorHealth Observation 134: Extracorporeal Cardiopulmonary Bypass
- CorHealth Observation 135: Valve Surgery Type
- CorHealth Observation 136: Atrial Fibrillation Ablation Type
- CorHealth Observation 137: Atrial Fibrillation Ablation Instance
- CorHealth Observation 138: Clinically Relevant Pericardial Effusion
- CorHealth Observation 139: Device Embolization
- CorHealth Observation 140: Major Bleeding
- CorHealth Observation 141: Number of Valve Clips (0 - 9)
- CorHealth Observation 142: Post-Operative Mitral Regurgitation
- CorHealth Observation 143: Post-Operative Mitral Valve Gradient (0.0 - 100.0)
- CorHealth Observation 144: Persistent Inter-Atrial Shunt Post-Procedure
- CorHealth Observation 145: Technical Success
- CorHealth Observation 146: Vascular Complication
- CorHealth Observation 152: Delay Reason
- CorHealth Observation 153: Race
- CorHealth Observation prpc: Patient’s Referral Postal Code
- Wait Time Metric Base Observation
- Wait Time Metric Observation: calculation-anatomy-result
- Wait Time Metric Observation: calculation-ca
- Wait Time Metric Observation: calculation-cc
- Wait Time Metric Observation: calculation-ci
- Wait Time Metric Observation: calculation-cm
- Wait Time Metric Observation: calculation-cp
- Wait Time Metric Observation: calculation-cs
- Wait Time Metric Observation: calculation-cv
- Wait Time Metric Observation: dart-days-wait-time-1
- Wait Time Metric Observation: dart-days-wait-time-2
Extensions
Supported Search Parameters
All search parameters defined in the FHIR standard for the DiagnosticReport resource and all the referenced resources when these gets requested using "_include" or "_revinclude" in the search request as well as new search parameters define in this IG.
New Search Parameters defined in this IG
Managing Returned Resources
In order to allow the client to be confident about what search parameters were used as criteria by the server, the server will return the parameters that were actually used to process the search. Applications processing search results SHALL check these returned values where necessary. For example, if the server did not support some of the filters specified in the search, a client might manually apply those filters to the retrieved result set, display a warning message to the user or take some other action. In the case of a RESTful search, these parameters are encoded in the self link in the bundle that is returned:
In other respects, servers have considerable discretion with regards to supporting search:
- Parameter names and URLs are case-sensitive.
- Server will choose how many results to return, though the client can use _count as described in the FHIR standard.
- Server will provide a link to fetch the next page of results.
- Server will choose how to sort the return results, though it will honor the _sort parameter.
Example
GET [base-search]/DiagnosticReport?patient.identifier=[id-system-global-base]/ca-on-patient-hcn|12345678&code=http://loinc.org|34133-9&identifier=[id-system-local-base]/diagnostic-report-id|22334455&_include=*&_revinclude=*
Expected Behaviour
See Response Handling page for a complete listing of response codes.
Legend |
---|
code = OperationOutcome.issue.code |
severity = OperationOutcome.issue.severity |
details.coding.code=OperationOutcome.issue.details.coding.code |
details.coding.display=OperationOutcome.issue.details.coding.display |
details.text = OperationOutcome.issue.details.coding.text |
diagnostics = OperationOutcome.issue.diagnostics |
HTTP Status | Scenario Description | severity | code | details.coding.code | details.coding.display | details.text/diagnostics |
---|---|---|---|---|---|---|
200 OK | Resource successfully returned | |||||
200 OK | No matches | information | not-found | Not found: DiagnosticReport matching search parameters | ||
400 Bad Request | HTTP (Gateway) request author header is missing | error | required | HTTP (Gateway) request authorization header is missing | ||
400 Bad Request | Gateway header content is invalid | error | structure | Gateway authorization header content is invalid | ||
400 Bad Request | Gateway context header is missing transaction identifier | error | required | HTTP (Gateway) request transaction identifier header is missing | ||
400 Bad Request | Gateway context header is missing UAO identifie | error | required | Gateway authorization header is missing UAO identifier | ||
400 Bad Request | Gateway context header is missing UAO identifier type | error | required | Gateway authorization header is missing UAO identifier type | ||
400 Bad Request | Gateway context header is missing NAME identifier | error | required | Gateway authorization header is missing SUB identifier | ||
400 Bad Request | Invalid search parameter | error | value | Invalid search parameter: parameter-name | ||
400 Bad Request | X-GtwyOriginalRequestUriMasked missing | error | required | HTTP (Gateway) request Original Request Uri Masked is missing | ||
400 Bad Request | Gateway authorization header is missing ISS | error | required | Gateway authorization header is missing ISS identifier | ||
429 Too Many Requests | Rate Limit | error | exception | Too Many Requests | ||
500 Internal Server Error | Unhandled Exception | fatal | exception | Internal Error |