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. 

matchEngine*
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
wmdaId*integer
example: 123456

nullable: false
Expand
titleResponse
FieldDetails
searchIdinteger
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

Response

searchId
minimum: 1

4.2 - Search summary

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

Request

Response 

stringminimum: 1
Send
retrieveSearchResultssummary
searchId*integer
patient{...}
searchId*integer
nullable: false

minimum: 1
searchType*
Get
searches/{searchId}
Expand
titleRequest
FieldDetails
searchId*

integer

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

4.2 - Search summary

The retrieveSearchResultssummary endpoint is used to request a search summary for a search. It also contains the status of a search and can therefore be used to check whether a search is done. 

 1 ]matchEnginefalseUnique identifier of match engine used in the search. Allowed: 2 (HAP-E), 3 (ATLAS).Enum:
Array [ 2 ]
stringEnum
Array [ 3 ]

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

overallMismatches*integer
default: 0
Enum:
Array [ 8 ]
status*

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

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

maxLength:
summary*{...}
inexplicable*integer
nullable: true

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

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

maxLength: 255

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

4.3 - Search results - Donors

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

 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} endpoint is used to retrieve an overview off all searches that have been performed for a specific patient.

Get
searches/patientSearches/{wmdaId}
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.

Expand
titleResponse
FieldDetails
searchId*integer
nullable: false

minimum: 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*{...}
lociToBeConsidered*[...]
lastUpdated*string($date-time)
nullable: false

maxLength: 255

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

inexplicableinteger
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.

Post
searches/searchResults/donors
Expand
titleRequest
FieldDetails
pagination{...}
searchId*integer
nullable: false

minimum: 1
filters{...}
sortBy

string
nullable: true

default: standard
Enum:
Array [ 2 ]

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

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.

Request

Send
retrieveSearchResultsDonors
pagination{...}
searchId*integer
nullable: false

minimum: 1
filters{...}
sortBystring
nullable: true

default: standard
Enum:
Array [ 2 ]

Response

paging*
limit*integer
default: 100

minimum: 0
offset*integer
default: 0

minimum: 0

example: 0
totalCount*integer
minimum: 0

example: 2
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:
[ AV, TU, RS ]
sex*string
nullable: true
Enum:
[ M, F ]
ethnicity*string
nullable: true
Enum:
[ UK, AF, AS, CA, HI, AFNA, AFSS, ASSW, ASSO, ASCE, ASSE, ASNE, ASOC, CAEU, CAER, CANA, CAAU, HICA, HISA, MX, OT ]
idm*antiCmvStatusstring
nullable: true
Enum:
Array [ 7 ]
antiCmvDatestring($date)
nullable: true

maxLength: 10

date of CMV NAT test

cmvNatStatusstring
nullable: true
Postsearches/searchResults/cbus
Expand
titleRequest
FieldDetails
pagination{...}
searchId*integer
nullable: false

minimum: 1
filters{...}
sortBystring
nullable: true

default: standard
Enum:
Array [ 2 ]
cmvNatDate
threeFourMismatchSortBystring
($date)

nullable: true

maxLength
default: 
10

date of CMV NAT test

abo*string
nullable: true
resolutionScoreEnum:
[ A, B, O, AB ]rhesus*
Array [ 3 ]
secondarySortBystring
nullable: true
Enum:
[ P, N ]
registryAccreditationStatus*

default
string
nullable
: 
true
tncCountEnum:
Array [
 accredited, qualified 
 2 ]
firstAccreditationYear*
Expand
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*booleanmatchingInformationDpb1*
dpb1MatchGrade*string
nullable: true
Enum:
[ P, A, G, H, X ]
tceDigest*
permissiveProbability*integer
nullable: true

minimum: 0

maximum: 100

Probability of permissive MM. Probabilities calculated with allele frequencies for DPB1, no linkage disequilibrium taken into account

nonPermissiveHostVsGraftProbability*integer
nullable: true

minimum: 0

maximum: 100

Probability for non-permissive MM in HvG direction. Probabilities calculated with allele frequencies for DPB1, no linkage disequilibrium taken into account

nonPermissiveGraftVsHostProbability*integer
nullable: true

minimum: 0

maximum: 100

Probability for Nnon-permissive MM in GvH direction. Probabilities calculated with allele frequencies for DPB1, no linkage disequilibrium taken into account

notDeterminedProbability*integer
nullable: true

minimum: 0

maximum: 100

Probability for Not Determinable permissiveness. Probabilities calculated with allele frequencies for DPB1, no linkage disequilibrium taken into account

mismatches*
locus*string
nullable: true

locus where the mismatch is

Enum:
[ A, B, C, DRB1, DQB1, DPB1, DPA1, DQA1, DRB2, DRB3, DRB4, DRB5 ]
position*integer
nullable: true

position of the mismatch (chromosome 1 or 2)

Enum:
[ 1, 2 ]
type*string
nullable: true

type of mismatch

Enum:
[ ANTIGEN, ALLELE ]
searchResultRecordState*string
nullable: false

default: Existing
Enum:
[ Existing, New, Updated, Deleted ]
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

grid*string
nullable: true

maxLength: 19

minLength: 19

example: 9991012070433202000
donorId*string
nullable: true

example: ABC1234

maxLength: 25
donorType*string
nullable: false
Enum:
[ D, B ]
lastContactDate*string($date)
nullable: true

minLength: 10

maxLength: 10
marrowDonationsCount*integer
nullable: true

example: 0
pbscDonationsCount*integer
nullable: true

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

maxLength: 10

example: 1961-05-27
hla*
a*
field1*string
maxLength: 20

example: 01:01
field2*string
nullable: true

maxLength: 20

example: 02:01
b*
field1*string
maxLength: 20

example: 01:01
field2*string
nullable: true

maxLength: 20

example: 02:01
c*
field1*string
maxLength: 20

example: 01:01
field2*string
nullable: true

maxLength: 20

example: 02:01
dpa1*
field1*string
maxLength: 20

example: 01:01
field2*string
nullable: true

maxLength: 20

example: 02:01
dpb1*
field1*string
maxLength: 20

example: 01:01
field2*string
nullable: true

maxLength: 20

example: 02:01
dqa1*
field1*string
maxLength: 20

example: 01:01
field2*string
nullable: true

maxLength: 20

example: 02:01
dqb1*
field1*string
maxLength: 20

example: 01:01
field2*string
nullable: true

maxLength: 20

example: 02:01
drb1*
field1*string
maxLength: 20

example: 01:01
field2*string
nullable: true

maxLength: 20

example: 02:01
drb3*
field1*string
maxLength: 20

example: 01:01
field2*string
nullable: true

maxLength: 20

example: 02:01
drb4*
field1*string
maxLength: 20

example: 01:01
field2*string
nullable: true

maxLength: 20

example: 02:01
drb5*
field1*string
maxLength: 20

example: 01:01
field2*string
nullable: true

maxLength: 20

example: 02:01

}]

4.4 - Full report - Donors

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

...

Request

...

Response

searchIdinteger
nullable: false

minimum: 1
searchTypestringEnum:
[ DR ]
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{...}
donor
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

grid*string
nullable: true

maxLength: 19

minLength: 19

example: 9991012070433202000
donorId*string
nullable: true

example: ABC1234

maxLength: 25
donorType*string
nullable: false
Enum:
Array [ 2 ]
lastContactDate*string($date)
nullable: true

minLength: 10

maxLength: 10
marrowDonationsCount*integer
nullable: true

example: 0
pbscDonationsCount*integer
nullable: true

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

maxLength: 10

example: 1961-05-27
donorAttributestring
maxLength: 3

nullable: true
kir{...}
weightinteger
nullable: true

minimum: 1

maximum: 999

example: 76
heightinteger
nullable: true

minimum: 1

maximum: 999

example: 161
collectionTypestring
nullable: true

Collection type, i.e. the willingness of the donor to donate in a specific manner. M = Marrow P = PBSC B = Both PBSC & Marrow

Enum:
Array [ 3 ]
transfusionsCountinteger
nullable: true

example: 1
pregnanciesCountinteger
nullable: true

example: 2
reservedPatientIdstring
nullable: true

example: 1234222ss
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*{...}
ccr5*string
nullable: true
Enum:
Array [ 3 ]
lastMedicalCheckupDatestring($date)
nullable: true

minLength: 10

maxLength: 10
registry*{...}

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. 

...

Request

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[...]
isSelectedboolean
nullable: true

default: null

example: 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[...]
inexplicablestring
nullable: true

default: null

example: OnlyInexplicable

Filter for only returning donors/CBUs marked as selected

Enum:
Array [ 4 ]
status[...]
allowedMismatchedAlleles{...}
minimumTncCountnumber
example: 1140000000

nullable: true
minimumCd34Countnumber
example: 3900000

nullable: true
cbbAccreditationStatus[...]

}

sortBystring
nullable: true

default: standard
Enum:
[ standard, sumOfProbabilities ]
threeFourMismatchSortBystring
nullable: true

default: resolutionScore
Enum:
[ none, resolutionScore, standard (not yet available) ]
secondarySortBystring
nullable: true

default: tncCount
Enum:
[ tncCount, cd34Count ]

Response

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*{...}
titleResponse
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
 


4.6 - Full report - CBUs

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

...

Request

...

integer

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

Response

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. 

...