Search MDI Operation
Experimental
This is an early access feature and is subject to change.
OPERATION: POST [base]/Composition/$search-mdi
The Search MDI operation is used for retrieving medicolegal death investigation documents HL7 FHIR MDI Specification.
Supported Resources
This operation has been implemented for the following resources:
- Composition (no documentation page on this yet)
Workflow
Authorization
This operation will require the application obtain authorization to update a Composition using one of the following SMART clinical scopes.
- v1:
[patient|user|system]/Composition.[read|*] - v2:
[patient|user|system]/Composition.[s](future)
Parameters
| Use | Name | Cardinality | Type | Documentation |
|---|---|---|---|---|
| IN | id | 0..1 | uri | Composition.id of Composition - MDI to EDRS |
| IN | tracking-number | 0..1 | token | Composition.extension:extension-tracking-number of Composition - MDI and EDRS |
| IN | patient | 0..* | A list of client demographics used to match any documents containing a set or partial set of these demographics | |
| IN | patient.birthdate | 0..1 | date* | Date range of decedent date of birth |
| IN | patient.family | 0..1 | string | Decedent's last name |
| IN | patient.given | 0..1 | string | Decedent's first name |
| IN | patient.gender | 0..1 | token | Decedent's gender |
| IN | patient.mother-maiden-name | 0..1 | string | Decedent's mother's maiden name |
| IN | patient.us-ssn | 0..1 | identifier | Decedent's US Social Security Number |
| IN | patient.suffix | 0..1 | string | Name suffix of decedent (Jr., Sr., III, etc.) |
| IN | death-location | 0..1 | string | Location address in Location-death |
| IN | death-date-pronounced | 0..1 | date* | Observation.component:datetimePronouncedDead in Observative - Death Date |
| IN | death-date | 0..1 | date* | Value (actual or presumed date of death) in Observation - Death Date |
| OUT | return | 1..1 | Bundle | A bundle contain a set of Patient records that represent possible matches, optionally it may also contain an OperationOutcome with further information about the search results (such as warnings or information messages, such as a count of records that were close but eliminated) If the operation was unsuccessful, then an OperationOutcome may be returned along with a BadRequest status Code (e.g. security issue, or insufficient properties in patient fragment - check against profile) |
Examples
- Production
- Preview
curl -X POST 'https://fhir.netsmartcloud.com/v4/Composition/$search-mdi' \
-H "Authorization: {Bearer Token}" \
-H "Accept: application/fhir+json" \
-H "Content-Type: application/x-form-urlencoded" \
-d @payload.json
curl -X POST 'https://fhirtest.netsmartcloud.com/v4/Composition/$search-mdi' \
-H "Authorization: {Bearer Token}" \
-H "Accept: application/fhir+json" \
-H "Content-Type: application/x-form-urlencoded" \
-d @payload.json
Payloads
Sample Search MDI Request Payload
{
"resourceType": "Parameters",
"id": "SearchMdiRequestExample",
"meta": {
"profile": [
"http://example.org/StructureDefinition/Parameters-search-mdi-request"
]
},
"parameter": [
{
"name": "tracking-number",
"valueIdentifier": {
"value": "12345"
}
},
{
"name": "patient",
"part": [
{
"name": "birthdate",
"valuePeriod": {
"start": "2000-01-01",
"end": "2000-01-01"
}
},
{
"name": "family",
"valueString": "Doe"
},
{
"name": "given",
"valueString": "John"
},
{
"name": "suffix",
"valueString": "Jr"
},
{
"name": "gender",
"valueCode": "male"
},
{
"name": "mother-maiden-name",
"valueString": "Maiden"
},
{
"name": "us-ssn",
"valueIdentifier": {
"value": "123456789"
}
}
]
},
{
"name": "death-location",
"valueString": "County"
},
{
"name": "death-date-pronounced",
"valuePeriod": {
"start": "2024-01-01",
"end": "2024-01-31"
}
},
{
"name": "death-date",
"valuePeriod": {
"start": "2024-01-01",
"end": "2024-01-31"
}
},
{
"name": "count",
"valuePositiveInt": 10
},
{
"name": "page",
"valueUnsignedInt": 0
}
]
}
Sample Search MDI Response Payload
Search MDI Success
{
"resourceType":"Bundle",
"id":"13ab1ecf-38ce-4f47-aebb-a38396a80775",
"type":"searchset",
"total":1,
"entry":[
{
"resourceType":"Bundle",
"id":"fd240814-5911-49bb-bb20-72066add4a18",
"meta":{
"profile":[
"http://hl7.org/fhir/us/mdi/StructureDefinition/Bundle-document-mdi-to-edrs"
]
},
"type":"document",
"entry":[
{
"fullUrl":"Composition/965a0688-e6f4-4bff-a96d-639cbd7ea295",
"resource":{
"resourceType":"Composition",
"id":"965a0688-e6f4-4bff-a96d-639cbd7ea295"
}
}
]
}
]
}
Invalid Search MDI Payload or Other Unprocessable Request
{
"resourceType": "OperationOutcome",
"issue": [
{
"severity": "error",
"code": "processing",
"details": {
"text": "Exception message"
}
}
]
}
Rejections or Other Search MDI Processing Errors
{
"resourceType": "Parameters",
"parameter": [
// Search parameters
{
"name": "death-location",
"valueString": "a, b, c"
},
{
"name": "outcome",
"resource": {
"resourceType": "OperationOutcome",
"issue": [
{
"severity": "error",
"code": "processing",
"details": {
"text": "status note"
}
}
]
}
}
]
}
Errors
Errors will be reported within an OperationOutcome and could include:
| Issue | Description | HTTP Status |
|---|---|---|
| T.B.D. | T.B.D. | 400 Bad Request |
| T.B.D. | T.B.D. | 500 Internal Server Error |
| T.B.D. | T.B.D. | 501 Not Implemented |