Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

4.1 - Start

...

search 

A POST to the searches The startSearch endpoint is used to submit a search request to the Search & Match Service.  This call returns a searchId for of the search. 

SendPost

startSearchsearches

Expand
titleRequest...
FieldDetails
wmdaId*integer
example: 123456

nullable: false
matchEngine*integer
nullable: false

Unique identifier of match engine used in the search. Allowed: 2 (HAP-E), 3 (ATLAS).

Enum:
Array [ 2 ]
searchType*string
example: DR
Enum:
Array [ 2 ]
overallMismatchesinteger
default: 0
Enum:
Array [ 8 ]
lociToBeConsidered[...]
isCbuAbLowDrb1HighResolutionboolean
default: false

nullable: true
Expand
titleResponse
FieldDetails
searchIdinteger
nullable: false

minimum: 1

4.2 - Search summary

The retrieveSearchResultssummary A GET to the searches/{searchId} endpoint is used to request a search summary for of a search. It also contains the status of a the search and can therefore be used to check whether a the search is done. 

retrieveSearchResultssummaryResponse which
Get
searches/{searchId}
Send
Expand
titleRequest
FieldDetails
searchId*

integer

Expand
title

Unique identifier of the search. Can be determined by retrieving the patient search summary

Expand
titleResponse
FieldDetails
patient{...}
searchId*integer
nullable: false

minimum: 1
searchType*stringEnum:
Array [ 1 ]
matchEngine*integer
nullable: false

Unique identifier of match engine used in the search. Allowed: 2 (HAP-E), 3 (ATLAS).

Enum:
Array [ 2 ]
overallMismatches*integer
default: 0
Enum:
Array [ 8 ]
status*string
nullable: false
Enum:
Array [ 3 ]
summary*{...}
inexplicable*integer
nullable: true

Total number of donors

whose phenotype cannot be explained by known haplotype

statistics*{...}
error*{...}
nullable: true
lociToBeConsidered[...]
lastUpdatedstring($date-time)
nullable: false

maxLength: 255

needed to help determine when the patient can be automatically moved to STP state

4.3 -

...

Retrieve all searches for a patient

A GET to the searches/patientSearches/{wmdaId} The retrieveSearchResultsDonors endpoint is used to retrieve search results for donors. Pagination is possible and optional filters can be provided. an overview off all searches that have been performed for a specific patient.

retrieveSearchResultsDonorssearchIdnullable: false
minimum: 1
stringtruedefaultstandardEnum:
Array [ 2 ]
Get
searches/patientSearches/{wmdaId}
Send
Expand
titleRequest
pagination{...}
FieldDetails
wmdaId
*

integer

filters{...}
sortBy

wmdaId of patient you want to find search information for. This is NOT the patientId, but the wmdaId you received in the response body after creating your patient.

Expand
titleResponse
FieldDetails
searchId*integer

nullable: 
false
minimum: 
Expand
titleResponse
paging*{...}
searchResults*[...]

4.4 - Full report - Donors

The retrieveFullReportDonors endpoint is used to retrieve all available information for a specific donor in a search result. 

{

patientdonor{}

}

integerminimum

Request

1
1
matchEngine*integer
nullable: false

Unique identifier of match engine used in the search. Allowed: 2 (HAP-E), 3 (ATLAS).

Enum:
Array [ 2 ]
searchType*stringEnum:
Array [ 1 ]
overallMismatches*integer
default: 0
Enum:
Array [ 8 ]
status*string
nullable: false
Enum:
Array [ 3 ]
summary*
Send
retrieveSearchResultsDonors
Expand
titleRequest
searchResultsIdinteger
Expand
titleResponse
searchIdinteger
nullable: false

minimum: 1
searchTypestringEnum:
Array [ 1 ]
matchDurationinteger
minimum: 0

nullable: true

example: 30

time in seconds that the search took to run on the matching engine

{...}
lociToBeConsidered*
[...
]
lastUpdated*string($date-time)
nullable: false

Send
retrieveSearchResultsCBUs
Expand
titleResponse
searchId
maxLength: 

4.5 - Search results - CBUs

The retrieveSearchResultsDonors endpoint is used to retrieve search results for cord blood units. Pagination is possible and optional filters can be provided. 

255

needed to help determine when the patient can be automatically moved to STP state

inexplicable
integer
nullable: true

Total number of donors whose phenotype cannot be explained by known haplotype

statistics{...}
error{...}
nullable: true

4.4 - Search results - Donors

A POST to the searches/searchResults/donors endpoint is used to retrieve search results with adult donors. Pagination is possible and optional filters can be provided. If only interested in recent changes to the search results, this can be achieved using a filter on "recordLastUpdatedFrom" field.

{

boolean
Post
searches/searchResults/donors
false
minimum: 1
pagination

{

offsetinteger($int32)
default: 0
limitinteger($int32)
default: 100

Maximum number of records per page.

}

searchId*integer
nullable: false

minimum: 1
filters
description:

The search parameters used for finding search results.

mismatchLocusAllowed[...]
dpb1MatchGrade[...]
donorRegistryIon[...]
registryAccreditationStatus[...]
sex[...]
cmvStatus[...]
abo[...]
isSelected
Expand
titleRequest
FieldDetails
pagination{...}
searchId*integer
nullable: false

minimum: 1
filters{...}
sortBy

string


nullable: true

default: 

null

standard

example

Enum:
Array [ 2 

false

Filter for only returning donors/CBUs marked as selected

onlyRecordsWithDrb1boolean
nullable: true

default: false

example: false

Do no use - Obsolete. Filter for whether or not to return donors without DRB1 typing. Replaced by requiredTypedLoci

requiredTypedLoci

]

Expand
titleResponse
FieldDetails
paging*{...}
searchResults*[...]
inexplicablestring
nullable: true

default: null

example: OnlyInexplicable

Filter for only returning donors/CBUs marked as selected

Enum:
Array [ 4 ]
status[...]allowedMismatchedAlleles

4.5 - Search results - CBUs

A POST to the searches/searchResults/cbus retrieveSearchResultsDonors endpoint is used to retrieve search results with cord blood units. Pagination is possible and optional filters can be provided. If only interested in recent changes to the search results, this can be achieved using a filter on "recordLastUpdatedFrom" field.

number
example: 1140000000
truenumber
example3900000
nullable: true
[] standard, sumOfProbabilities [ none, resolutionScore, standard (not yet available)  tncCount, cd34Count ]Response
Post
searches/searchResults/cbus
Expand
titleRequest
FieldDetails
pagination{...}
minimumTncCount
searchId*integer
nullable: 
minimumCd34Count
false
minimum: 
1
filters{
cbbAccreditationStatus
...
}
sortBystring
nullable: true

default: standard
Enum:
Array [
 2 ]
threeFourMismatchSortBystring
nullable: true

default: resolutionScore
Enum:
Array [ 3 ]
secondarySortBystring
nullable: true

default: tncCount
Enum:
Array [
 2 ]
Expand
titleResponse
searchIdinteger
nullable: false

minimum: 1
paging*
limit*integer
default: 100

minimum: 0
offset*integer
default: 0

minimum: 0
totalCount*integer
minimum: 0
searchResults*

[
minItems: 0

id*integer
nullable: false

example: 5176
donorRegistryIon*integer
nullable: false

minimum: 1000

maximum: 9999

example: 1234
abbreviation*string
example: NL-WMDA

maxLength: 24
haplotypeFrequencySetId*integer
nullable: true

minimum: 0

example: 15
status*string
nullable: false
Enum:
Array [ 3 ]
sex*string
nullable: true
Enum:
Array [ 2 ]
ethnicity*string
nullable: true
Enum:
Array [ 21 ]
idm*{...}
abo*string
nullable: true
Enum:
Array [ 4 ]
rhesus*string
nullable: true
Enum:
Array [ 2 ]
registryAccreditationStatus*string
nullable: true
Enum:
Array [ 2 ]
firstAccreditationYear*number
minimum: 1990

maximum: 2100

nullable: true

example: 2019
matchClass*string
example: 9/10

nullable: false
nmdpGrade*string
maxLength: 5

example: MPPMP

nullable: true

A - high-res match on ARD, P - probable match, M - sure Mismatch

zeroMismatchProbability*integer
minimum: 0

maximum: 100

nullable: true
oneMismatchProbability*integer
nullable: true

minimum: 0

maximum: 100
twoMismatchProbability*integer
nullable: true

minimum: 0

maximum: 100
aLocusMatchProbability*integer
nullable: true

minimum: 0

maximum: 100
bLocusMatchProbability*integer
nullable: true

minimum: 0

maximum: 100
cLocusMatchProbability*integer
nullable: true

minimum: 0

maximum: 100
drLocusMatchProbability*integer
nullable: true

minimum: 0

maximum: 100
dqLocusMatchProbability*integer
nullable: true

minimum: 0

maximum: 100
inexplicable*boolean
matchingInformationDpb1*{...}
mismatches*[...]
searchResultRecordState*string
nullable: false

default: Existing
Enum:
Array [ 4 ]
searchResultRecordStateUpdatedAt*string($date-time)
nullable: true

maxLength: 255

date and time when the last change was registered in the system

isSelected*boolean
nullable: true

true when this record has been marked as a selected

resolutionScore*number
minimum: 0

maximum: 100

nullable: true

example: 54
resolutionString*string
minLength: 5

maxLength: 5

example: AP-A-

nullable: true

A - high-res P - low or intermediate, - no typing

cordId*string
nullable: true

maxLength: 25

example: 9991012070433202000
donorType*stringEnum:
Array [ 1 ]
collectionDate*string($date)
minLength: 10

maxLength: 10

nullable: true

example: 2021-05-27
volume*integer
example: 25

nullable: true
tncCount*number
example: 1140000000

nullable: true
cd34Count*number
example: 3900000

nullable: true
viability*integer
minimum: 0

maximum: 100

example: 97

nullable: true
attachedSegmentsCount*integer
nullable: true

minimum: 0

maximum: 99

example: 2
bankManufacturerIdWmda*integer
example: 5432

nullable: true
cbbAccreditationStatus*string
nullable: true
Enum:
Array [ 3 ]
hla*{...}

4.6 - Full report - CBUs

The retrieveFullReportCBUs endpoint is used to retrieve all available information for a specific CBU in a search result. 

...

Request

Expand
titleResponse
searchIdinteger
nullable: false

minimum: 1

...

integer

Unique identifier of the search.  Can be determined by retrieving patient search summary

Response

Expand
titleResponse
searchIdinteger
nullable: false

minimum: 1
searchIdinteger
nullable: false

minimum: 1
searchType

string

Enum:
[ CB ]

matchDurationinteger
minimum: 0

nullable: true

example: 30

time in seconds that the search took to run on the matching engine

patient
patientId*string
maxLength: 17

nullable: true

example: P1234XX

Organisation unique identifier for patient. Cannot be set unless "legalTerms" is set to "true". Do not use real names here.

status*string
nullable: false
Enum:
Array [ 5 ]
hla*{...}
idm*{...}
dateOfBirth*string($date)
nullable: true

maxLength: 10

example: 1961-05-27
diagnosis*{...}
diseasePhase*string
nullable: true
Enum:
Array [ 48 ]
ethnicity*string
nullable: true
Enum:
Array [ 21 ]
poolCountryCode*string
maxLength: 2

pattern: ^[A-Z]{2}

nullable: true

example: NL

ISO 3166-1 alpha-2 Country Code (capitalized)

transplantCentreId*string
maxLength: 10

nullable: true

example: TC X
abo*string
nullable: true
Enum:
Array [ 4 ]
rhesus*string
nullable: true
Enum:
Array [ 2 ]
weight*integer
nullable: true

minimum: 1

maximum: 999

example: 76
sex*string
nullable: true
Enum:
Array [ 2 ]
legalTerms*boolean
nullable: true

default: false

example: true

If not set to true, then patientId will not be stored.

wmdaId*integer
example: 123456

nullable: false
lastUpdated*string($date-time)
nullable: false

maxLength: 255

needed to help determine when patient can be automatically moved to STP state

lastViewed*string($date-time)
nullable: false

maxLength: 255

needed for sorting patients in the patient list

assignedUserName*string
minLength: 4

maxLength: 100

nullable: true

example: janethesearchcoordinator@lunarregistry.com

typically the e-mail address of the user

registry{...}
cbu
id*integer
nullable: false

example: 5176
donorRegistryIon*integer
nullable: false

minimum: 1000

maximum: 9999

example: 1234
abbreviationstring
example: NL-WMDA

maxLength: 24
haplotypeFrequencySetId*integer
nullable: true

minimum: 0

example: 15
status*string
nullable: false
Enum:
Array [ 3 ]
sex*string
nullable: true
Enum:
Array [ 2 ]
ethnicity*string
nullable: true
Enum:
Array [ 21 ]
idm*{...}
abo*string
nullable: true
Enum:
Array [ 4 ]
rhesus*string
nullable: true
Enum:
Array [ 2 ]
registryAccreditationStatus*string
nullable: true
Enum:
Array [ 2 ]
firstAccreditationYear*number
minimum: 1990

maximum: 2100

nullable: true

example: 2019
matchClass*string
example: 9/10

nullable: false
nmdpGrade*string
maxLength: 5

example: MPPMP

nullable: true

A - high-res match on ARD, P - probable match, M - sure Mismatch

zeroMismatchProbability*integer
minimum: 0

maximum: 100

nullable: true
oneMismatchProbability*integer
nullable: true

minimum: 0

maximum: 100
twoMismatchProbability*integer
nullable: true

minimum: 0

maximum: 100
aLocusMatchProbability*integer
nullable: true

minimum: 0

maximum: 100
bLocusMatchProbability*integer
nullable: true

minimum: 0

maximum: 100
cLocusMatchProbability*integer
nullable: true

minimum: 0

maximum: 100
drLocusMatchProbability*integer
nullable: true

minimum: 0

maximum: 100
dqLocusMatchProbability*integer
nullable: true

minimum: 0

maximum: 100
inexplicable*boolean
matchingInformationDpb1*{...}
mismatches*[...]
searchResultRecordState*string
nullable: false

default: Existing
Enum:
Array [ 4 ]
searchResultRecordStateUpdatedAt*string($date-time)
nullable: true

maxLength: 255

date and time when the last change was registered in the system

isSelected*boolean
nullable: true

true when this record has been marked as a selected

resolutionScore*number
minimum: 0

maximum: 100

nullable: true

example: 54
resolutionString*string
minLength: 5

maxLength: 5

example: AP-A-

nullable: true

A - high-res P - low or intermediate, - no typing

cordIdstring
nullable: true

maxLength: 25

example: 9991012070433202000
donorType*string
nullable: false
Enum:
Array [ 2 ]
collectionDatestring($date)
minLength: 10

maxLength: 10

nullable: true

example: 2021-05-27
volume*integer
example: 25

nullable: true
tncCount*number
example: 1140000000

nullable: true
cd34Count*number
example: 3900000

nullable: true
viability*integer
minimum: 0

maximum: 100

example: 97

nullable: true
attachedSegmentsCountinteger
nullable: true

minimum: 0

maximum: 99

example: 2
bankManufacturerIdWmda*integer
example: 5432

nullable: true
cbbAccreditationStatus*string
nullable: true
Enum:
Array [ 3 ]
localIdstring
example: 12345ABC

nullable: true
bagIdstring
example: ABCDE1234

nullable: true
dateOfBirth*string($date)
nullable: true

maxLength: 10

example: 1961-05-27
processingDatestring($date)
nullable: true

minLength: 10

maxLength: 10
processingMethodstring
nullable: true

HES = Hydroxy-Ethyl-Starch, DGS = Density Gradient Separation, CEN = Centrifuge, FIL = Filtration, FIC = FICOL, PER = PERCOL, OTH = Other

Enum:
Array [ 7 ]
processingMethodTypestring
nullable: true
Enum:
Array [ 5 ]
freezeDatestring($date)
nullable: true
freezeMethodstring
nullable: true
Enum:
Array [ 2 ]
reservedPatientIdstring
nullable: true

example: 1234222ss
productModificationsstring
nullable: true
Enum:
Array [ 7 ]
bagTypestring
nullable: true
Enum:
Array [ 4 ]
bagsCountinteger
minimum: 1

maximum: 99

example: 2

nullable: true
bankDistributionIdWmdainteger
nullable: true

example: 1234
bacterialCultureResultsstring
nullable: true

P = Positive N = Negative D = Not done

Enum:
Array [ 3 ]
fungalCultureResultsstring
nullable: true

P = Positive N = Negative D = Not done

Enum:
Array [ 3 ]
hemoglobinopathyScreeningStatusstring
nullable: true

DN = "Screening done, normal results" DU = "Screening done, unusual findings" NS = "No screening done" CD = "Can be done at time of release" NC = "Cannot be done" DT = "Thalassemia" DD = "Drepanocytosis"

Enum:
Array [ 7 ]
viabilityCellTypestring
nullable: true

type of cell tested for viability

Enum:
Array [ 3 ]
viabilityMethodstring
nullable: true

7A = 7AAD PI = Propidium Iodide TB = Trypan Blue OT = Other

Enum:
Array [ 4 ]
viabilityDatestring($date)
nullable: true
volumeFrozen*integer
example: 25

nullable: true
tncFrozenCount*number
example: 1020000000

nullable: true
cd34FrozenCount*number
example: 3700000

nullable: true
cfuFrozenCountinteger
nullable: true

minimum: 10000

maximum: 99990000

Total count of colony forming units (post processing, prior to cryopreservation)

mncFrozenCount*number
example: 430000000

nullable: true
ccr5string
nullable: true
Enum:
Array [ 3 ]
kir{...}
plasmaAliquotsCountinteger
minimum: 0

maximum: 99

nullable: true

Number of plasma aliquots available

redCellAliquotsCountinteger
minimum: 0

maximum: 99

nullable: true

Number of red cell fraction aliquots

nucleatedRbcFrozenCountinteger
minimum: 0

maximum: 9999000000

nullable: true

Total number of nucleated red blood cells (post processing, prior to cryopreservation)

serumAliquotsCountinteger
minimum: 0

maximum: 99

nullable: true
serumQuantitynumber
minimum: 0

maximum: 99.9

nullable: true
plasmaQuantitynumber
minimum: 0

maximum: 99.9

nullable: true
ctCompletionDatestring($date)
maxLength: 10
ctSampleTypestring
nullable: true

maxLength: 2

AS = CBU Contiguous Attached Segment, WB = Whole Blood Sample, RC = Red Cell Fraction (pellet), FP = Blood Spotted Filter Paper, ED = Extracted DNA

Enum:
Array [ 5 ]
dnaSamplesAvailableboolean
nullable: true
otherSamplesAvailableboolean
nullable: true
donorAttributestring
maxLength: 3

nullable: true
statusEndDatestring($date)
maxLength: 10

nullable: true
statusReasonstring
nullable: true

DO = Donor is too old, DD = Donor died, MR = Medical reasons, PR = Personal reasons, TX = After transplantation, MO = Donor has moved, UC = Unable to contact donor, OT = Other reasons, TQ = Typing questionable, UK = Unknown

Enum:
Array [ 10 ]
hla*{...}
mic{...}
registry{...}
cbb{...}
maternalInfo{...}

4.7 - Suggested use of API endpoints

Below is a diagram indicated the suggested use of some of the API endpoints. More API endpoints are available and the API implementer may choose to implement the endpoints in another order. 

...

FieldDetails
paging*{...}
searchResults*[...]

4.6 - Mark selected donor

A POST to the searches/selected/donors endpoint is used to select a donor. This endpoint can be used to highlight a donor of interest.

Post
searches/selected/donors
Expand
titleRequest
FieldDetails
wmdaId

integer

wmdaId of patient you want to find search information for. This is NOT the patientId, but the wmdaId you received in the response body after creating your patient.

gridstring
nullable: true

maxLength: 19

minLength: 19

example: 9991012070433202000
setAsSelected

boolean
nullable: false

set (true) or unset (false) the indicated grid or cordId as a selected stem cell source for this patient

Expand
titleResponse
N/A

4.7 - Mark selected CBU

A POST to the searches/selected/cbus endpoint is used to select a donor. This endpoint can be used to highlight a CBU of interest.

Post
searches/selected/cbus
Expand
titleRequest
FieldDetails
wmdaId

integer

wmdaId of patient you want to find search information for. This is NOT the patientId, but the wmdaId you received in the response body after creating your patient.

cordId

string
nullable: true
maxLength: 25
example: 9991012070433202000

cordId of the CBU.

donorRegistryIoninteger
nullable: false

minimum: 1000

maximum: 9999

example: 1234
setAsSelected

boolean
nullable: false

set (true) or unset (false) the indicated grid or cordId as a selected stem cell source for this patient

Expand
titleResponse
N/A

4.8 - Get list of registries that appear in search results

A GET to the searches/{searchId}/searchResults/registries endpoint is used to retrieve an overview off all the registries that appear in the search results of a specific donor search.

Get
searches/{searchId}/searchResults/registries
Expand
titleRequest
FieldDetails
searchId*

integer

Unique identifier of the search. Can be determined by retrieving the patient search summary

Expand
titleResponse
FieldDetails
registries*

{...}

Array of unique registry IONs with their abbreviation and name

4.9 - Get list of cord blood banks that appear in search results

A GET to the searches/{searchId}/searchResults/cbbs endpoint is used to retrieve an overview off all the registries that appear in the search results of a specific donor search.

Get
searches/{searchId}/searchResults/cbbs
Expand
titleRequest
FieldDetails
searchId*

integer

Unique identifier of the search. Can be determined by retrieving the patient search summary

Expand
titleResponse
FieldDetails
cbbs*

{...}

Array of unique cbbs bank manufacterer IDs with their abbreviation and name

4.10 - Full report - Donors

A GET to the searches/donors/{searchResultsId} endpoint retrieves all available information of a specific donor in a search result. 

Get
searches/donors/{searchResultsId}
Expand
titleRequest
FieldDetails
searchResultsId*

integer

Unique identifier of the donor within a search result. This is the "id" field within searchResult

Expand
titleResponse
FieldDetails
searchIdinteger
nullable: false

minimum: 1
searchTypestring
Enum:
Array [ 1 ]
matchDurationinteger
minimum: 0

nullable: true

example: 30

time in seconds that the search took to run on the matching engine

patient{...}
search{...}
donor{...}

4.11 - Full report - CBUs

A GET to the searches/cbus/{searchResultsId} endpoint retrieves all available information of a specific CBU in a search result. 

Get
searches/cbus/{searchResultsId}
Expand
titleRequest
Field

Details

searchResultsId*

integer

Unique identifier of the search.  Can be determined by retrieving the patient search summary

Expand
titleResponse
FieldDetails
searchIdinteger
nullable: false

minimum: 1
searchTypestringEnum:
Array [ 1 ]
matchDurationinteger
minimum: 0

nullable: true

example: 30

time in seconds that the search took to run on the matching engine

search{...}
patient{...}
cbu{...}

4.12 - Refresh all searches for a patient

A POST to the searches/refreshAllPatientSearches endpoint is used to restart all searches for this patient and retrieve the new results.

Post

searches/refreshAllPatientSearches

Expand
titleRequest...
FieldDetails
wmdaId*integer
example: 123456

nullable: false
Expand
titleResponse
N/A

4.13 - Restart a single search

A POST to the searches/searchResultsRefresh endpoint is used to restart all searches for this patient and retrieve the new results.

Post

searches/searchResultsRefresh

Expand
titleRequest...
FieldDetails
searchId*integer
example: 123456

nullable: false
Expand
titleResponse
FieldDetails
newSearchIdinteger
example: 123457

nullable: false

4.14 - Suggested use of API endpoints

Below is a diagram indicating the suggested use of some of the API endpoints. More API endpoints are available and the API implementer may choose to implement the endpoints in another order. 

PlantUML Macro
titleSuggested use of API endpoints
@startuml
<style>
diamond {
    BackgroundColor #ccf
  }
</style>

#palegreen:repeat:request token from 'https://login.microsoftonline.com/{tenantId}/oauth2/token';
repeat while (Valid bearer token from the Patient and Search API?) is (no)
->yes;
#palegreen:create patient: POST /patients;
#lightblue:HTTP201 created: Response body contains 'wmdaId' for this patient;
#palegreen:Start search for patient using wmdaId POST to /searches;
#lightblue:repeat:HTTP201 created: Response body contains 'searchId' for this patient;
#palegreen:repeat:Check search status: GET to /searches/{wmdaId};
backward: running;
repeat while (What is the 'status' in the response body?)
:completed;
split
#gold:Donor;
#AntiqueWhite:Retrieve search results: POST to /searches/searchResults/donors;
#pink:Pick one or more donors;
#AntiqueWhite:Use 'id' field for that donor to perform GET to
 /searches/donors/{searchResultsId} to get full report for this donor;
split again
#gold:CBU;
#AntiqueWhite:Retrieve search results: POST to /searches/searchResults/cbus;
#pink:Pick one or more CBUs;
#AntiqueWhite:Use 'id' field for that donor to perform GET to 
/searches/cbus/{searchResultsId} to get full report for this CBU;
split again
#gold:ADCU;
#AntiqueWhite:Retrieve search results: POST to /searches/searchResults/adcus;
#pink:Pick one or more ADCUs;
#AntiqueWhite:Use 'id' field for that donor to perform GET to
 /searches/adcus/{searchResultsId} to get full report for this ADCU;
endsplit
split
#palegreen:Refresh all searches for a patient: POST to /searches/refreshAllPatientSearches;
split again
#palegreen:Refresh single search: POST to /searches/searchResultsRefresh;

@enduml