Profiles & Operations Index > Operation: Search MI Order
Operation: Search MI Order
Search MI Order
The Search MI Orders operation issues a parameterized query that results in a searchset Bundle that contains ServiceRequest resources related to a patient.
The mandatory parameter for this query:
- Patient identifier
The optional parameters for this query:
- patient gender
- patient date of birth
- ServiceRequest authored (date)
- ServiceRequest code (procedure code)
- ServiceRequest category (e.g. modality, specialty, body part, laterality)
- Identifier (i.e. Accession Number)
- maxinum number of records to return
- other resources to be included in the result set (_include)
Search Parameter | Type | Documentation | Usage Notes |
---|---|---|---|
patient.identifier | Identifier | Mandatory paramater This parameter specifies an identifier associated with the patient who is the subject of this order. This use of patient.identifier follows the FHIR Chaining Parameters search methodology. | HCN or MRN. MRN is preferred. System and value must be provided. |
patient.gender | token | Optional parameter This parameter specifies the gender of the patient associated to this order. | Value may be "male", "female", "other", "unknown" |
patient.birthDate | date | Optional parameter This parameter specifies the date of birth of the patient associated to this order. | |
authored | date | Optional paramater The date range relates to the dates when orders were authored | |
code | Coding | Optional paramater The code relates to ServiceRequest code (procedure code). This might be a local, provincial or SNOMED CT procedure code for ServiceRequest code. | |
category | Coding | Optional paramater The category indicating the ServiceRequest category (e.g. modality, specialty, bodypart, etc) | |
identifier | Identifier | Optional paramater This is the accession number of the order. | |
_count | integer | Optional paramater This is the maximum number of records to return. | |
_include | string | Optional paramater This specifies the type of referenced resources to be included in the bundle. To include all referenced resources, use wildcard such as _include=* |
Scope
This interaction involves a request by an miCDR ServiceRequest Consumer for a set of ServiceRequest resources matching the specified search criteria. The request is received by the miCDR FHIR server which returns a Bundle containing the matching ServiceRequest.
For example, a physician who has access to miCDR is seeing a new patient and wants to see a list of MI orders available for that patient. A physician uses the patient information held in the system to query miCDR FHIR server for any ServiceRequest resources that exist for that patient. A physician can also request searching for orders with specific procedure codes (ServiceRequest.code) and/or categories, e.g.modalities, specialties, body parts, etc. (ServiceRequest.category). The server returns a Bundle with matching MI orders. The PoS system is responsibile for listing the available MI orders for the user to review.
Interaction Diagram
Actor: miCDR ServiceRequest Consumer
Role: Requests a set of miCDR ServiceRequest resources from the miCDR FHIR server based on specified search criteria.
Actor: miCDR FHIR server
Role: Returns a Bundle containing ServiceRequest instances (as well as reference resources if requested by use of _include and _revinclude parameters) that match the search criteria specified by the miCDR ServiceRequest Consumer.
Specification
Search
The miCDR FHIR server supports both GET and POST; we prefer the use of POST to avoid putting PHI in request URLs.
GET [base]/ServiceRequest?{parameters}
POST [base]/ServiceRequest
For POST request, the parameters SHALL be provided in the form of FHIR Parameters resource in the HTTP body of the request.
Search Response
If the query is valid and at least one ServiceRequest is found, miCDR FHIR server will return a searchset bundle containing matching ServiceRequest resource(s).
ERD Diagram
For details of a ServiceRequest profile, please refer to the ServiceRequest profile page.
Examples
The following search parameters and search parameter combinations are supported:
- Search for all ServiceRequest resources for a patient using the patient search parameter
GET [base]/ServiceRequest?patient={Type/}[id]
1.1 Example of search by patient's Ontario HCN
GET [base]/ServiceRequest?patient.identifier=https://fhir.infoway-inforoute.ca/NamingSystem/ca-on-patient-hcn|1234567890
1.2 Example of search by multiple patient MRNs
GET [base]/ServiceRequest?patient.identifier=http://ehealthontario.ca/fhir/NamingSystem/id-the-ottawa-hospital-mrn|23456789,http://ehealthontario.ca/fhir/NamingSystem/id-cambridge-memorial-mrn|23456782,http://ehealthontario.ca/fhir/NamingSystem/id-university-health-network-mrn|23456784,http://ehealthontario.ca/fhir/NamingSystem/id-providence-care-mrn|11233
1.3 Example of search by patient identifier, start date, local procedure code
GET [base]/ServiceRequest?patient.identifier=https://fhir.infoway-inforoute.ca/NamingSystem/ca-on-patient-hcn|1234567890&started=gt2024-01-01&code=http://snomed.info/sct|12345
1.4 Example of search by patient identifier, start date, local procedure code (SNOMED code: 12345) and category (DICOM Mammography)
GET [base]/ServiceRequest?patient.identifier=https://fhir.infoway-inforoute.ca/NamingSystem/ca-on-patient-hcn|1234567890&started=gt2024-01-01&basedOn:ServiceRequest.code-category=http://snomed.info/sct|12345$http://dicom.nema.org/resources/ontology/DCM|MG
Response:
HTTP Response Code | FHIR Response Payload |
---|---|
200 | link |
Search that yields consent block (TBD)
Search that failed to provide a response (TBD)
Expected Behavior
See Response Handling page for additional response handling behaviour.
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 |
HTTP Status | Scenario Description | severity | code | details.coding.code | details.coding.display | details.text |
---|---|---|---|---|---|---|
200 OK | At least one imaging order matching the specified search criteria is found | |||||
200 OK | At least one imaging order matching the specified search criteria is found, but there is a consent block that prevents disclosure of patient data. Returns an OperationOutcome resource indicating that there is a consent block on the patient's record that prevents disclosure of patient data. | warning | suppressed | |||
200 OK | No imaging order matching the specified search criteria are found. | warning | not-found | |||
400 Bad Request | Missing security token | error | required | Missing required security token: PIN | ||
400 Bad Request | Request is malformed (e.g. incorrect header value, patient identifier is missing system or value, etc) | error | -- | -- | -- | -- |
500 Internal Server Error | API validates the request but cannot return a valid response due to internal issues. | fatal | exception | Internal Error | ||
503 Service Unavailable | Indicates that the services has been temporarily taken down (on purpose) | |||||
504 Gateway Timeout | Downstream system(s) did not return timely response | error | timeout |