microsoft / microsoft/fhir-server

Implement HL7 FHIR Patient MATCH Operation

Open
#943 4 comments 0 reactions 0 assignees View on GitHub
Area-API Area-Operations Enhancement Epic Informational Specification Up for grabs VSTS-Backlog
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.