microsoft / microsoft/fhir-server
Implement HL7 FHIR Patient MATCH Operation
- Dominant language
- TSQL
- Stars
- 1.4k
- Forks
- 592
- Avg merge
- 2d 7h
- Merged PRs (30d)
- 41
Description
**User story**
Implement patient MATCH functionality.
https://www.hl7.org/fhir/patient-operation-match.html
**Acceptance criteria**
When I call the patient match function:
POST /myfhirapi/Patient/$match
```json
{
"resourceType": "Parameters",
"id": "example",
"parameter": [
{
"name": "resource",
"resource": {
"resourceType": "Patient",
"identifier": [
{
"use": "usual",
"type": {
"coding": [
{
"system": "http://hl7.org/fhir/v2/0203",
"code": "MR"
}
]
},
"system": "urn:oid:1.2.36.146.595.217.0.1",
"value": "12345"
}
],
"name": [
{
"family": [
"Chalmers"
],
"given": [
"Peter"
]
}
],
"gender": "male",
"birthDate": "1974-12-25"
}
},
{
"name": "count",
"valueInteger": "3"
},
{
"name": "onlyCertainMatches",
"valueBoolean": "false"
}
]
}
```
I get match results:
```json
{
"resourceType": "Bundle",
"id": "26419249-18b3-45de-b10e-dca0b2e72b",
"meta": {
"lastUpdated": "2016-03-18T03:28:49Z"
},
"type": "searchset",
"total": 2,
"entry": [{
"fullUrl": "http://server/path/Patient/example",
"resource": {
"resourceType": "Patient",
"id": "example",
.. snip ...
},
"search": {
"extension": [{
"url": "http://hl7.org/fhir/StructureDefinition/match-grade",
"valueCode": "certain"
}],
"mode": "match",
"score": 0.9
}
},{
"fullUrl": "http://server/path/Patient/292",
"resource": {
"resourceType": "Patient",
"id": "292",
.. snip ...
},
"search": {
"extension": [{
"url": "http://hl7.org/fhir/StructureDefinition/match-grade",
"valueCode": "possible"
}],
"mode": "match",
"score": 0.2
}
}]
}
```
Contributor guide
Research direction
Start with the HL7 FHIR Patient $match specification linked in the issue and the POST /myfhirapi/Patient/$match contract. Determine how the supplied Parameters should produce a searchset Bundle with match grades and scores, then verify the implementation against the example request and response; no test file or entry point is named.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- sql
- Domain
- api, backend-api-design
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 32/100