General considerations

5.1 - Extended Typing Request (TYP_REQ)

This message is used to request an extended typing of a donor (adult, ADCU, CBU). It primarily contains information about what to type and for which donor. 
The expected return messages are Reservation Response, Extended Typing Results (donor or cbu) and/or Request Rejection.

Send (Post)
Retrieve (Post)
extendedTypingRequestRequest extendedTypingRequestRetrieve
Field Details
request *
Field Details
requestId

string
example: XX12345

resolutionRequired * {...}

Replacement of the single string based resolutionRequired.

institutionPaying*

organisationId string example :  9999123456

organisation*

contactPerson*

see Embedded Address Block

isUrgent boolean
remark string
example: the patient case is very urgent
receivingRegistry* integer
example: 1234

4 digit ION of the receiving registry

attachment Embedded Attachment Block
patient* Embedded Patient Block
donor*Embedded Donor Block (donor in request)
Field Details
wmdaResponse* Embedded Meta Information Block
limit integer
default: 100

shouldPeek boolean
default: false

Set to true if you want messages to remain available after retrieval

messageSequenceNumber

integer
example : 12345

Optional field to request a message with a specific messageSequenceNumber. If that message (no longer) exists then no message will be returned.

Field Details
generalInformation* Embedded General Information Block
messages*
originalMessage* {...}
metaInformation * Embedded Meta Information Block

Rules

The institutionPaying block must provide the necessary details for the donor registry to send an invoice for the service. In EMDIS, this used to be the address of the financial institution.

The appropriate action if the typing request cannot be accepted or has to be changed by the receiving registry, e.g., due to national rules, is to inform the requesting side what was done. If only the resolution was changed (the sending registry will receive something different than ordered - either more or less) or only a part of the requested loci were accepted (the sending registry will only receive parts of what was ordered): send a message response containing the warning.

5.2 - Extended Typing Results (TYP_RES)

This message is used to send the results of the Extended Typing Request back to the requesting registry.   Different endpoints have been implemented according to source type (e.g. donor, cbu).

5.2.1 - Extended Typing Results Donor (TYP_RES for donors)

Send (Post)
Retrieve (Post)
extendedTypingDonorResponseRequest extendedTypingDonorResponseRetrieve
Field

Details

response*
Field Details
referenceMessageId* string ($uuid)
hlaNomenclatureVersion* string
default: 3

Major version of HLA Nomenclature

hla*

a

dna  {...}

description: HLA node with DNA

b

dna  {...}

description: HLA node with DNA

c

dna  {...}

description: HLA node with DNA

drb1

dna  {...}

description: HLA node with DNA

drb3

dna  {...}

description: HLA node with DNA

drb4

dna  {...}

description: HLA node with DNA

drb5

dna  {...}

description: HLA node with DNA

dqa1

dna  {...}

description: HLA node with DNA

dqb1

dna  {...}

description: HLA node with DNA

dpa1

dna  {...}

description: HLA node with DNA

dpb1

dna  {...}

description: HLA node with DNA

mica

gls  {...}

description: HLA node with GLS

micb

gls  {...}

description: HLA node with GLS


SampleType string

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

remark string
example: the patient case is very urgent
receivingRegistry* integer
example: 1234

4-digit ION of the receiving registry

attachment Embedded Attachment Block
donor* Embedded Donor Block (donor in response)
patient*
wmdaId* integer
Field Details
wmdaResponse* Embedded Meta Information Block
limit integer
default: 100

shouldPeek boolean
default: false

Set to true if you want messages to remain available after retrieval

messageSequenceNumber

integer
example : 12345

Optional field to request a message with a specific messageSequenceNumber. If that message (no longer) exists then no message will be returned.

generalInformation* Embedded General Information Block
messages*
originalMessage* {...}
metaInformation * Embedded Meta Information Block

5.2.2 - Extended Typing Results CBU (TYP_RES for CBUs)

Send (Post)
Retrieve (Post)
extendedTypingCbuResponseRequest extendedTypingCbuResponseRetrieve
Field

Details

response*
Field Details
referenceMessageId* string ($uuid)
hlaNomenclatureVersion* string
default: 3

Major version of HLA Nomenclature 

hla*

a

dna  {...}

description: HLA node with DNA

b

dna  {...}

description: HLA node with DNA

c

dna  {...}

description: HLA node with DNA

drb1

dna  {...}

description: HLA node with DNA

drb3

dna  {...}

description: HLA node with DNA

drb4

dna  {...}

description: HLA node with DNA

drb5

dna  {...}

description: HLA node with DNA

dqa1

dna  {...}

description: HLA node with DNA

dqb1

dna  {...}

description: HLA node with DNA

dpa1

dna  {...}

description: HLA node with DNA

dpb1

dna  {...}

description: HLA node with DNA

mica

gls  {...}

description: HLA node with GLS

micb

gls  {...}

description: HLA node with GLS

SampleType string

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

remark string
example: the patient case is very urgent
receivingRegistry* integer
example: 1234

4-digit ION of the receiving registry

attachment Embedded Attachment Block
donor* Embedded CBU Block (donor in response)
patient*
wmdaId* integer
Field Details
wmdaResponse* Embedded Meta Information Block
limit integer
default: 100

shouldPeek boolean
default: false

Set to true if you want messages to remain available after retrieval

messageSequenceNumber

integer
example : 12345

Optional field to request a message with a specific messageSequenceNumber. If that message (no longer) exists then no message will be returned.

generalInformation* Embedded General Information Block
messages*
originalMessage* {...}
metaInformation * Embedded Meta Information Block

5.3 - Sample Request (SMP_REQ)

This message is used to request a sample to be used for verification typing in the lab of the sending registry.

The expected return messages are Reservation Response, Sample Arrival Date, Sample Information, IDM Results, and/or Request Rejection.

Send (Post)Retrieve (Post)
sampleRequestRequest  sampleRequestRetrieve
Field Details
request*
requestId string
example: XX12345
prod1* {...}
prod2 {...}
prod3 {...}
prod4 {...}
earliestDateCanReceive* string ($date-time)

Earliest date of sample reception 

latestDateCanReceive string ($date-time)

Latest date of sample reception 

acceptableReceptionDaysOfWeek* integer
example: 1111100

Weekdays acceptable for reception. Binary fixed length string for the 7 days in the week. E.g., 1110000 means acceptable days for reception are Monday, Tuesday and Wednesday, not acceptable days are Thursday, Friday, Saturday, and Sunday.

institutionToSendSampleTo* Embedded Address Block
institutionPaying*Embedded Address Block
isUrgent boolean

Urgent request

remark string
example: the patient case is very urgent
receivingRegistry* integer
example: 1234

4-digit ION of the receiving registry

attachment Embedded Attachment Block
patient* Embedded Patient Block
donor*Embedded Donor Block (donor in request)
Field Details
wmdaResponse* Embedded Meta Information Block
limit integer
default: 100

shouldPeek boolean
default: false

Set to true if you want messages to remain available after retrieval

messageSequenceNumber

integer
example : 12345

Optional field to request a message with a specific messageSequenceNumber. If that message (no longer) exists then no message will be returned.

Field Details
generalInformation* Embedded General Information Block
messages*
originalMessage* {...}
metaInformation * Embedded Meta Information Block

Rules:

5.4 - Sample Information (SMP_INFO)

This message is used to send relevant secondary information that may arise in the context of the sample request.

Send (Post)
Retrieve (Post)
sampleInfoRequest (comments refer to changes to the current API definition) sampleInfoRetrieve
message*
referenceMessageId* string ($uuid)
informationType*

string
Information Type

remark string
receivingRegistry* integer
example: 1234

4-digit ION of the receiving registry

attachment Embedded Attachment Block
patient*
wmdaId* integer
donor*Embedded Donor Block (donor in request)
Field Details
wmdaResponse* Embedded Meta Information Block
limit integer
default: 100

shouldPeek boolean
default: false

Set to true if you want messages to remain available after retrieval

messageSequenceNumber

integer
example : 12345

Optional field to request a message with a specific messageSequenceNumber. If that message (no longer) exists then no message will be returned.

generalInformation* Embedded General Information Block
messages*
originalMessage* {...}
metaInformation * Embedded Meta Information Block

Rules:

5.5 - Sample Arrival (SMP_ARR)

This message is used to transmit the proposed date of the sample arrival.

Send (Post)
Retrieve (Post)
sampleArrivalRequest (comments refer to changes to the current API definition) sampleArrivalRetrieve
Field Details
message*
Field Details
referenceMessageId* string ($uuid)
arrivalDate* string ($date-time)

Proposed date of sample arrival

collectionDate string ($date-time)

Donor blood collection date

labelId* string

Verbatim verification typing (VT) sample label ID

SampleType * string

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

remark string
example: the patient case is very urgent
receivingRegistry* integer
example: 1234

4 digit ION of the receiving registry

attachment Embedded Attachment Block
patient*
wmdaId* integer
donor*Embedded Donor Block (donor in request)
Field Details
wmdaResponse* Embedded Meta Information Block
limit integer
default: 100

shouldPeek boolean
default: false

Set to true if you want messages to remain available after retrieval

messageSequenceNumber

integer
example : 12345

Optional field to request a message with a specific messageSequenceNumber. If that message (no longer) exists then no message will be returned.

Field Details
generalInformation* Embedded General Information Block
messages*
originalMessage* {...}
metaInformation * Embedded Meta Information Block

5.6 - Sample Response (SMP_RES)

This message is used to transmit the results of the sample testing.

Send (Post)
Retrieve (Post)
sampleResponseRequest (comments refer to changes to the current API definition) sampleResponseRetrieve
Field Details
response*
Field Details
referenceMessageId* string ($uuid)
hlaNomenclatureVersion* string
default: 3

Major version of HLA Nomenclature

hla{...}
idm{...}
mixedLymphocyteCultureGvh

string
enum [ P, N]

Result MLC, Graft vs. Host (formerly MLC_GVH)

mixedLymphocyteCultureHvg

string
enum [ P, N]

Result MLC, Host vs. Graft (formerly MLC_HVG)

gvhReactivityPercent

integer

GvH reactivity (formerly GVH_REAC)

hvgReactivityPercent

integer

HvG reactivity (formerly HVG_REAC)

abo

string

enum [ A, B, O, AB]

rhesus

string

enum [ P, N]

ccr5

enum [DD, DW, WW] 

donorStillOfInterest

string

Donor still of interest

attachment

{...}

receivingRegistry* integer
example: 1234

4 digit ION of the receiving registry

attachment Embedded Attachment Block
patient*
wmdaId* integer
donor*Embedded Donor Block (donor in request)
Field Details
wmdaResponse* Embedded Meta Information Block
limit integer
default: 100

shouldPeek boolean
default: false

Set to true if you want messages to remain available after retrieval

messageSequenceNumber

integer
example : 12345

Optional field to request a message with a specific messageSequenceNumber. If that message (no longer) exists then no message will be returned.

generalInformation* Embedded General Information Block
messages*
originalMessage* {...}
metaInformation * Embedded Meta Information Block

Rules:

Note: To release a donor after a sample result with donorStillOfInterest = 'Yes' has been issued, the Reservation Release message should be used.

5.7 - Infectious Disease Marker Request (IDM_REQ)

This message is used to request i nfectious disease marker test results of the selected donor.

The expected return messages are  Reservation Response ,  IDM Results , and/or  Request Rejection .

Send (Post)
Retrieve (Post)
infectiousDiseaseMarkerRequest infectiousDiseaseMarkerRequestRetrieve
Field Details
request*
Field Details
requestId string
example: XX12345
marker * [...]
institutionPaying*Embedded Address Block
attachment [...]
remark string
example: Please also test for SARS-CoV-2
receivingRegistry* integer
example: 1234

4-digit ION of the receiving registry

attachment Embedded Attachment Block
patient* Embedded Patient Block
donor*Embedded Donor Block (donor in request)
Field Details
wmdaResponse* Embedded Meta Information Block
limit integer
default: 100

shouldPeek boolean
default: false

Set to true if you want messages to remain available after retrieval

messageSequenceNumber

integer
example : 12345

Optional field to request a message with a specific messageSequenceNumber. If that message (no longer) exists then no message will be returned.

Field Details
generalInformation* Embedded General Information Block
messages*
originalMessage* {...}
metaInformation * Embedded Meta Information Block

Rules:

5.8 - Infectious Disease Marker Results (IDM_RES)

This message is used to send the results of the IDM request back to the requesting registry. 

Rules

5.8.1 - Infectious Disease Marker Results (IDM_RES for donors)

Send (Post)
Retrieve (Post)
infectiousDiseaseMarkerDonorResultRequest infectiousDiseaseMarkerDonorResultRetrieve
Field Details
response*
Field Details
referenceMessageId* string ($uuid)
marker* [...]
sampleExtractionDate* string ($date-time)

Date of sample extraction

idm {...}
abo

string

enum [ A, B, O, AB ]

rhesus

string

enum [ P, N ]

ccr5

string

Donor CCR5 status

attachment

{...}

remark string
receivingRegistry* integer
example: 1234

4-digit ION of the receiving registry

attachment Embedded Attachment Block
donor* Embedded Donor Block (donor in response)
patient*
wmdaId* integer
Field Details
wmdaResponse* Embedded Meta Information Block
limit integer
default: 100

shouldPeek boolean
default: false

Set to true if you want messages to remain available after retrieval

messageSequenceNumber

integer
example : 12345

Optional field to request a message with a specific messageSequenceNumber. If that message (no longer) exists then no message will be returned.

Field Details
generalInformation* Embedded General Information Block
messages*
originalMessage* {...}
metaInformation * Embedded Meta Information Block

5.8.2 - Infectious Disease Marker Results CBU (IDM_RES for CBUs)

Send (Post)
Retrieve (Post)
infectiousDiseaseMarkerCbuResultRequest infectiousDiseaseMarkerCbuResultRetrieve
Field Details
response*
Field Details
referenceMessageId* string ($uuid)
marker* integer
example: 111110000111

Binary fixed length string in which each position represents a test to be requested: details are in Data Dictionary

sampleExtractionDate* string ($date-time)

Date of sample extraction

idm {...}
abo

string

enum [ A, B, O, AB ]

rhesus

string

enum [ P, N ]

ccr5

string

Donor CCR5 status

attachment

{...}

remark string
receivingRegistry* integer
example: 1234

4-digit ION of the receiving registry

attachment Embedded Attachment Block
donor* Embedded CBU Block (donor in response)
patient*
wmdaId* integer
Field Details
wmdaResponse* Embedded Meta Information Block
limit integer
default: 100

shouldPeek boolean
default: false

Set to true if you want messages to remain available after retrieval

messageSequenceNumber

integer
example : 12345

Optional field to request a message with a specific messageSequenceNumber. If that message (no longer) exists then no message will be returned.

Field Details
generalInformation* Embedded General Information Block
messages*
originalMessage* {...}
metaInformation * Embedded Meta Information Block

5.9 - Reservation Request (RSV_REQ)

This message is used to request the reservation of a donor for a specific patient for a upcoming transplantation at the receiving registry. The patient registry can ask for a specific reservation period by making use of the optional field expirationDate. 

The expected return message is  Reservation Response .

Send (Post)
Retrieve (Post)
reservationRequestRequest reservationRequestRetrieve
Field Details
request*
FieldDetails
requestId

string

expirationDate

string ($date-time)

Date expiration of reservation

remark string
receivingRegistry* integer
example: 1234

4-digit ION of the receiving registry

attachment Embedded Attachment Block
patient* Embedded Patient Block
donor*Embedded Donor Block (donor in request)
Field Details
wmdaResponse* Embedded Meta Information Block
limit integer
default: 100

shouldPeek boolean
default: false

Set to true if you want messages to remain available after retrieval

messageSequenceNumber

integer
example : 12345

Optional field to request a message with a specific messageSequenceNumber. If that message (no longer) exists then no message will be returned.

generalInformation* Embedded General Information Block
messages*
originalMessage* {...}
metaInformation * Embedded Meta Information Block

5.10 - Reservation Response (RSV_RES)

This message informs the requesting patient registry if the donor registry has confirmed the Reservation Request OR if the donor reservation was performed after another request.

The donor registry reports back the expirationDate. This might differ from the expirationDate of the Reservation Request message due to local rules or regulations at the donor registry side. The expirationDate in the Reservation Response reflects the "true" reservation period.

If the donor is unavailable, the Reservation Response with the negative confirmation is sent. There is no rejection (NO_RES) for the Reservation Request.

5.10.1 - Reservation Response (RSV_RES for donors)

Send (Post)
Retrieve (Post)
reservationDonorResponseRequest reservationDonorResponseRetrieve
Field Details
response*
FieldDetails
referenceMessageId* string ($uuid)
expirationDate string ($date-time)

Date expiration of reservation

confirmed* boolean

Confirmation of reservation

remark string
receivingRegistry* integer
example: 1234

4-digit ION of the receiving registry

attachment Embedded Attachment Block
patient*
wmdaId* integer
donor* Embedded Donor Block (donor in response)
Field Details
wmdaResponse* Embedded Meta Information Block
limit integer
default: 100

shouldPeek boolean
default: false

Set to true if you want messages to remain available after retrieval

messageSequenceNumber

integer
example : 12345

Optional field to request a message with a specific messageSequenceNumber. If that message (no longer) exists then no message will be returned.

Field Details
generalInformation* Embedded General Information Block
messages*
originalMessage* {...}
metaInformation * Embedded Meta Information Block

5.10.2 - Reservation Response CBU (RSV_RES for CBUs)

Send (Post)
Retrieve (Post)
reservationCbuResponseRequest reservationCbuResponseRetrieve
Field Details
response*
FieldDetails
referenceMessageId* string ($uuid)
expirationDate string ($date-time)

Date expiration of reservation

confirmed* boolean

Confirmation of reservation

remark string
receivingRegistry* integer
example: 1234

4-digit ION of the receiving registry

attachment Embedded Attachment Block
patient*
wmdaId* integer
donor* Embedded CBU Block (donor in response)
Field Details
wmdaResponse* Embedded Meta Information Block
limit integer
default: 100

shouldPeek boolean
default: false

Set to true if you want messages to remain available after retrieval

messageSequenceNumber

integer
example : 12345

Optional field to request a message with a specific messageSequenceNumber. If that message (no longer) exists then no message will be returned.

Field Details
generalInformation* Embedded General Information Block
messages*
originalMessage* {...}
metaInformation * Embedded Meta Information Block

5.11 - Reservation Release Request (new message)

The patient registry sends this message to inform the donor registry that a donor can be released from the reservation when it is no longer needed (e.g. patient is deceased or was transplanted with another donor). This should be used if the donor reservation was confirmed in response to some request. If the reservation has not been confirmed, then a Request Cancellation message should be used.

Use case: a Typing Request was sent → the donor was reserved for the patient → the request was completed, so it cannot be canceled anymore → the donor remains reserved till the expiration date → the patient registry must send the Reservation Release Request, if the donor is not needed to the patient anymore, even if some registry systems assume that.

This is a change with respect to the current procedure and should be handled as such, as it has implications for local systems.

There is no response to this message except for the automated acknowledgment.

The referenceMessageId must be taken from the request that caused the donor reservation.

Note: The Reservation Release should not be issued if the donor is still needed for the patient (for example, if the donor VT release period has completed, the release message should not be issued if the donor is still reserved in another request or work-up)


Send (Post)
Retrieve (Post)
reservationReleaseRequest reservationReleaseRetrieve
Field Details
request*
FieldDetails
referenceMessageId* string ($uuid)
reason* string

Reason of request cancellation

remark string
receivingRegistry* integer
example: 1234

4-digit ION of the receiving registry

attachment Embedded Attachment Block
patient*
wmdaId* integer
donor*Embedded Donor Block (donor in request)
Field Details
wmdaResponse* Embedded Meta Information Block
limit integer
default: 100

shouldPeek boolean
default: false

Set to true if you want messages to remain available after retrieval

messageSequenceNumber

integer
e
xample: 12345

Optional field to request a message with a specific messageSequenceNumber. If that message (no longer) exists then no message will be returned.

Field Details
generalInformation* Embedded General Information Block
messages*
originalMessage* {...}
metaInformation * Embedded Meta Information Block

5.12 - Workup Request

Future Phase

5.13 - Workup Status

Future Phase

5.14 - Request Cancellation (REQ_CAN)

This message is used to cancel a request that has been sent to the donor registry. The cancellation request must have a preceding request that is being canceled (referenced by the referenceMessageId).

Send (Post)
Retrieve (Post)
requestCancellationRequest requestCancellationRetrieve
Field Details
message*
FieldDetails
referenceMessageId* string ($uuid)
requestType* string

Type of request

reason string

Reason of request cancellation

remark string
receivingRegistry* integer
example: 1234

4-digit ION of the receiving registry

attachment Embedded Attachment Block
patient*
wmdaId* integer
donor*Embedded Donor Block (donor in request)
Field Details
wmdaResponse* Embedded Meta Information Block
limit integer
default: 100

shouldPeek boolean
default: false

Set to true if you want messages to remain available after retrieval

messageSequenceNumber

integer
e
xample: 12345

Optional field to request a message with a specific messageSequenceNumber. If that message (no longer) exists then no message will be returned.

Field Details
generalInformation* Embedded General Information Block
messages*
originalMessage* {...}
metaInformation * Embedded Meta Information Block

5.15 - Request Rejection (NO_RES)

This message is used to notify the requesting registry when a request cannot be fulfilled (service cannot be provided). The request must be referenced by the field referenceMessageId.

Note: For Reservation Requests, if a donor cannot be reserved, Reservation Response with ‘Confirmed’= ‘No’ should be issued and not Request Rejection.


Send (Post)
Retrieve (Post)
requestRejectedRequest requestRejectedRetrieve
Field Details
message*
FieldDetails
referenceMessageId* string ($uuid)
requestType* string

Type of request

reason* string
remark string
receivingRegistry* integer
example: 1234

4-digit ION of the receiving registry

attachment Embedded Attachment Block
patient*
wmdaId* integer
donor*Embedded Donor Block (donor in request)
Field Details
wmdaResponse* Embedded Meta Information Block
limit integer
default: 100

shouldPeek boolean
default: false

Set to true if you want messages to remain available after retrieval

messageSequenceNumber

integer
example : 12345

Optional field to request a message with a specific messageSequenceNumber. If that message (no longer) exists then no message will be returned.

generalInformation* Embedded General Information Block
messages*
originalMessage* {...}
metaInformation * Embedded Meta Information Block

5.16 - Result Reminder (RES_REM)

This message is sent by the requesting registry to remind the receiving registry of an outstanding result from a previous request. The request must be referenced by the field referenceMessageId.

Send (Post)
Retrieve (Post)
resultReminderRequest resultReminderRetrieve
Field Details
message*
FieldDetails
referenceMessageId* string ($uuid)
resultType* string

Type of result reminded

expirationDate string ($date-time)

Date expiration of reservation

remark string
receivingRegistry* integer
example: 1234

4-digit ION of the receiving registry

attachment Embedded Attachment Block
patient*
wmdaId* integer
donor*Embedded Donor Block (donor in request)
Field Details
wmdaResponse* Embedded Meta Information Block
limit integer
default: 100

shouldPeek boolean
default: false

Set to true if you want messages to remain available after retrieval

messageSequenceNumber

integer
example : 12345

Optional field to request a message with a specific messageSequenceNumber. If that message (no longer) exists then no message will be returned.

Field Details
generalInformation* Embedded General Information Block
messages*
originalMessage* {...}
metaInformation * Embedded Meta Information Block

5.17 - Generic Request (new message)

This message is used for registering a patient (by the embedded patient block).

This may be required, for example, for direct WU requests until 5.12 is available, or to reactivate a closed patient case on the receiving registry side.

Send (Post)
Retrieve (Post)
genericRequestRequest genericRequestRetrieve
Field Details
request*
FieldDetails
requestId

string

reason

string

reason for the generic request

receivingRegistry* integer
example: 1234

4-digit ION of the receiving registry

attachment Embedded Attachment Block
patient* Embedded Patient Block
donor*Embedded Donor Block (donor in request)
Field Details
wmdaResponse* Embedded Meta Information Block
limit integer
default: 100

shouldPeek boolean
default: false

Set to true if you want messages to remain available after retrieval

messageSequenceNumber

integer
example : 12345

Optional field to request a message with a specific messageSequenceNumber. If that message (no longer) exists then no message will be returned.

Field Details
generalInformation* Embedded General Information Block
messages*
originalMessage* {...}
metaInformation * Embedded Meta Information Block

5.18 - Upload and download attachment

This message is used to upload and download a document that is used as an attachment in the document exchange message.

Send (Post)
Send (Post)
uploadAttachment downloadAttachment
Field Details
receivingRegistry* Array
integer
example: List [ 9995, 9996, 9999 ]

array of 4 digit ION of receivingRegistry or receivingRegistries

fileName* string
example: test.txt
attachmentDescription*

string, Enum
[ cbuReport, hacReport, s10SearchRequest, patientEthnicInformation, searchResults, s20HlaTypingRequest, typingCancellation, s30HlaTypingResults, qnsChecklist, ic21AdditionalTypingConsent, ic40TypHhq, qnsForms, vt20VtRequest, vtForms, vtCancellation, ic40VtHhq, ic20CtInformedConsent, s70WmdaDiscrepant, vt50VtResults, idmResults, bloodGroupResult, hivResult, wu74TransplantReport, wu86CryoApproval, wuPostponement, researchDoc, wu53DeclarationUnableToClearDonor, wu11WuChecklistForCc, productLabelingChecklist, ir13ConsentForMedia, productLabel, wuRequest, wu10WuChecklist, wu20WuSchedule, wu30Verification, ic30BmInformedConsent, ic31PbscInformedConsent, ic32DliInformedConsent, ic40CollectionHhq, ic22AdditionalBloodSampleConsent, wuIdmResults, wu50FinalClearance, wu60InjectionPrescription, courierDetails, courierImportLetter, tr20TransportAudit, wu70FirstPbsc, wu71PbscCollectionReport, wu72BmCollectionReport, wu73DliCollectionReport, wu90DonorHealthCounselling, wu91CounsellingSubseqDonation, wuCancellation, rp20DonorIncidentReport, fu10InjectionsSymptoms, donorPicture, wu51IneligibleDonor, wu52AbnormalFinding, collectionGeneralAttachment, donationApprovalFile, eligibilityAttachment, secondDonationApprovalFile, fu20DonorFuWeek, fu21DonorFuMonth, fu22DonorFuYear, fu30PatientFu, ir10RequestToReleasePatientInfoEng, ir11RequestToReleasePatientInfoHeb, ir12RequestToReleaseDonorInfoHeb, letterForDonor, letterForPatient, meetingPicture ]

file*

blob

Field Details
timeUtc*

string
($date-time)

message* string
example: file has been uploaded successfully
attachmentGuid* string
($uuid)
receivingRegistry* Array
integer
example: List [ 9995, 9996, 9999 ]

array of 4 digit ION of receivingRegistry or receivingRegistries

fileName* string
example: test.txt
attachmentDescription* string, Enum
[ cbuReport, hacReport, s10SearchRequest, patientEthnicInformation, searchResults, s20HlaTypingRequest, typingCancellation, s30HlaTypingResults, qnsChecklist, ic21AdditionalTypingConsent, ic40TypHhq, qnsForms, vt20VtRequest, vtForms, vtCancellation, ic40VtHhq, ic20CtInformedConsent, s70WmdaDiscrepant, vt50VtResults, idmResults, bloodGroupResult, hivResult, wu74TransplantReport, wu86CryoApproval, wuPostponement, researchDoc, wu53DeclarationUnableToClearDonor, wu11WuChecklistForCc, productLabelingChecklist, ir13ConsentForMedia, productLabel, wuRequest, wu10WuChecklist, wu20WuSchedule, wu30Verification, ic30BmInformedConsent, ic31PbscInformedConsent, ic32DliInformedConsent, ic40CollectionHhq, ic22AdditionalBloodSampleConsent, wuIdmResults, wu50FinalClearance, wu60InjectionPrescription, courierDetails, courierImportLetter, tr20TransportAudit, wu70FirstPbsc, wu71PbscCollectionReport, wu72BmCollectionReport, wu73DliCollectionReport, wu90DonorHealthCounselling, wu91CounsellingSubseqDonation, wuCancellation, rp20DonorIncidentReport, fu10InjectionsSymptoms, donorPicture, wu51IneligibleDonor, wu52AbnormalFinding, collectionGeneralAttachment, donationApprovalFile, eligibilityAttachment, secondDonationApprovalFile, fu20DonorFuWeek, fu21DonorFuMonth, fu22DonorFuYear, fu30PatientFu, ir10RequestToReleasePatientInfoEng, ir11RequestToReleasePatientInfoHeb, ir12RequestToReleaseDonorInfoHeb, letterForDonor, letterForPatient, meetingPicture ]
Field Details
attachmentGuid* string
($uuid)
Field Details
200 OK

File

5.19 - Document Exchange (new message)

This message is used to send a document. It can be connected to a patient, a donor, or a request.

Send (Post)
Retrieve (Post)
genericDocumentExchangeRequestRequest genericDocumentExchangeRequestRetrieve
Field Details
referenceMessageId*

string ($uuid)

can be used to refer to message that has been sent previously

receivingRegistry* integer
example: 1234

4-digit ION of the receiving registry

patient* Embedded Patient Block
donor*

Embedded Donor Block (donor in request)

attachment*Attachment Block
Field Details
wmdaResponse* Embedded Meta Information Block
limit integer
default: 100

shouldPeek boolean
default: false

Set to true if you want messages to remain available after retrieval

messageSequenceNumber

integer
example : 12345

Optional field to request a message with a specific messageSequenceNumber. If that message (no longer) exists then no message will be returned.

Field Details
generalInformation* Embedded General Information Block
messages*
originalMessage* {...}
metaInformation * Embedded Meta Information Block

5.20 - Cord Blood Unit Report Request (CBR_REQ)

This message is used to request a cord blood unit report.

Send (Post)
Retrieve (Post)
cordBloodUnitReportRequest cordBloodUnitReportRequestRetrieve
Field Details
request*
FieldDetails
requestId

string

reason

string

reason for the generic request

receivingRegistry* integer
example: 1234

4-digit ION of the receiving registry

attachment Embedded Attachment Block
patient* Embedded Patient Block
donor*Embedded Donor Block (donor in request)
Field Details
wmdaResponse* Embedded Meta Information Block
limit integer
default: 100

shouldPeek boolean
default: false

Set to true if you want messages to remain available after retrieval

messageSequenceNumber

integer
example: 12345

Optional field to request a message with a specific messageSequenceNumber. If that message (no longer) exists then no message will be returned.

Field Details
generalInformation* Embedded General Information Block
messages*
originalMessage* {...}
metaInformation * Embedded Meta Information Block

5.21 - Cord Blood Unit Report Response (CBR_RES)

This message is used to respond to a cord blood unit report request.

Send (Post)
Retrieve (Post)
cordBloodUnitReportResponseRequest cordBloodUnitReportResponseRetrieve
FieldDetails
response*
FieldDetails
referenceMessageId* string ($uuid)
expirationDate string ($date-time)

Date expiration of reservation

confirmed*boolean

Confirmation of reservation

remark string
receivingRegistry* integer
example: 1234

4-digit ION of the receiving registry

attachment Embedded Attachment Block
patient*
wmdaId* integer
donor* Embedded CBU Donor Block (donor in response)
Field Details
wmdaResponse* Embedded Meta Information Block
limit integer
default: 100

shouldPeek boolean
default: false

Set to true if you want messages to remain available after retrieval

messageSequenceNumber

integer
example: 12345

Optional field to request a message with a specific messageSequenceNumber. If that message (no longer) exists then no message will be returned.

Field Details
generalInformation* Embedded General Information Block
messages*
originalMessage* {...}
metaInformation * Embedded Meta Information Block

5.22 - Request + Response Flows


participant "Patient Registry" as PR

control "Match-Connect" as MC

control "Search & Match Service" as SM

participant "Donor Registry" as DR

skinparam SequenceMessageAlign center

skinparam dpi 92

== Register Patient ==

PR -> SM : Create Patient

activate SM #FFBBBB

SM -> PR : Return wmdaId

deactivate SM

== Start Search ==

PR -> SM : Start Search

activate SM #FFBBBB

SM -> PR : Return searchId

deactivate SM


PR -> SM : Check search status

activate SM #FFBBBB

SM -> PR : Return search status (Completed, Running, Errored)

deactivate SM


PR -> SM : Retrieve search results

activate SM #FFBBBB

SM -> PR : Return search results

deactivate SM


== Making Request ==

PR -[#dodgerblue]> DR : Extended Typing Request (incl. Embedded Patient Block)

DR -[#dodgerblue]> PR : Reservation Response (incl. Embedded Donor Block)


== Getting Response ==

PR -[#dodgerblue]> DR : Request Cancellation

DR -[#dodgerblue]> PR : Request Rejection

DR -[#dodgerblue]> PR : Extended Typing Result (incl. Embedded Donor Block)

PR -[#dodgerblue]> DR : Reservation Release Request

 


participant "Patient Registry" as PR

control "Match-Connect" as MC

control "Search & Match Service" as SM

participant "Donor Registry" as DR

skinparam SequenceMessageAlign center

skinparam dpi 92

== Register Patient ==

PR -> SM : Create Patient

activate SM #FFBBBB

SM -> PR : Return wmdaId

deactivate SM

== Start Search ==

PR -> SM : Start Search

activate SM #FFBBBB

SM -> PR : Return searchId

deactivate SM


PR -> SM : Check search status

activate SM #FFBBBB

SM -> PR : Return search status (Completed, Running, Errored)

deactivate SM


PR -> SM : Retrieve search results

activate SM #FFBBBB

SM -> PR : Return search results

deactivate SM


== Making Request ==

PR -[#dodgerblue]> DR : Sample Request (incl. Embedded Patient Block)

DR -[#dodgerblue]> PR : Reservation Response (incl. Embedded Donor Block)


== Getting Response ==

PR -[#dodgerblue]> DR : Request Cancellation

DR -[#dodgerblue]> PR : No Result (Request Rejection)

DR -[#dodgerblue]> PR : Sample Arrival

DR -[#dodgerblue]> PR : IDM result (incl. Embedded Donor Block)

DR -[#dodgerblue]> PR : Sample Information

PR -[#dodgerblue]> DR : No Result (Request Rejection)

PR -[#dodgerblue]> DR : Sample Result

PR -[#dodgerblue]> DR : Reservation Release Request



participant "Patient Registry" as PR

control "Match-Connect" as MC

control "Search & Match Service" as SM

participant "Donor Registry" as DR

skinparam SequenceMessageAlign center

skinparam dpi 92

== Register Patient ==

PR -> SM : Create Patient

activate SM #FFBBBB

SM -> PR : Return wmdaId

deactivate SM

== Start Search ==

PR -> SM : Start Search

activate SM #FFBBBB

SM -> PR : Return searchId

deactivate SM



PR -> SM : Check search status

activate SM #FFBBBB

SM -> PR : Return search status (Completed, Running, Errored)

deactivate SM



PR -> SM : Retrieve search results

activate SM #FFBBBB

SM -> PR : Return search results

deactivate SM


== Making Request ==

PR -[#dodgerblue]> DR : IDM Request (incl. Embedded Patient Block)

DR -[#dodgerblue]> PR : Reservation Response (incl. Embedded Donor Block)


== Getting Response ==

PR -[#dodgerblue]> DR : Request Cancellation

DR -[#dodgerblue]> PR : Request Rejection

DR -[#dodgerblue]> PR : IDM Result (incl. Embedded Donor Block)

PR -[#dodgerblue]> DR : Reservation Release Request



participant "Patient Registry" as PR

control "Match-Connect" as MC

control "Search & Match Service" as SM

participant "Donor Registry" as DR

skinparam SequenceMessageAlign center


skinparam dpi 92

== Register Patient ==

PR -> SM : Create Patient

activate SM #FFBBBB

SM -> PR : Return wmdaId

deactivate SM

== Start Search ==

PR -> SM : Start Search

activate SM #FFBBBB

SM -> PR : Return searchId

deactivate SM


PR -> SM : Check search status

activate SM #FFBBBB

SM -> PR : Return search status (Completed, Running, Errored)

deactivate SM


PR -> SM : Retrieve search results

activate SM #FFBBBB

SM -> PR : Return search results

deactivate SM


== Making Request ==

PR -[#dodgerblue]> DR : Reservation Request (incl. Embedded Patient Block)


== Getting Response ==

PR -[#dodgerblue]> DR : Request Cancellation

DR -[#dodgerblue]> PR :  <s:red>Request Rejection</strike>

DR -[#dodgerblue]> PR : Reservation Response (incl. Embedded Donor Block)

PR -[#dodgerblue]> DR : Reservation Release Request



@startuml

participant "Patient Registry" as PR

control "Match-Connect" as MC

control "Search & Match Service" as SM

participant "Donor Registry" as DR

skinparam SequenceMessageAlign center

skinparam dpi 92

== Register Patient ==

PR -> SM : Create Patient

activate SM #FFBBBB

SM -> PR : Return wmdaId

deactivate SM

== Start Search ==


PR -> SM : Start Search

activate SM #FFBBBB

SM -> PR : Return searchId

deactivate SM

PR -> SM : Check search status

activate SM #FFBBBB

SM -> PR : Return search status (Completed, Running, Errored)

deactivate SM


PR -> SM : Retrieve search results

activate SM #FFBBBB

SM -> PR : Return search results

deactivate SM


== Making Request ==

PR -[#dodgerblue]> DR : Generic Request (incl. Embedded Patient Block)

DR -[#dodgerblue]> PR : Reservation Response (incl. Embedded Donor Block)

PR -[#dodgerblue]> DR : Request Cancellation


== Getting Response ==

DR -[#dodgerblue]> PR : Request Rejection

@enduml


Please note that for the above request flows textMessage and documentExchange messages could be send as optional messages in both directions PR→ DR as well as DR→ PR. They are not displayed above for better readability. For more details about how to include a documentExchange messages please see example below.



Technical process flow for sending and receiving requests and -responses to and from Match-Connect


@startuml

participant "Patient Registry" as PR

control "Match-Connect" as MC

participant "Donor Registry" as DR

skinparam SequenceMessageAlign center

skinparam dpi 92


== PR Request ==

PR -[#dodgerblue]> MC: Request (*Request)

MC -[#black]> PR : { wmdaResponse }


== DR Retrieving Request(s) ==

DR --[#dodgerblue]> MC: Check Available Messages (AvailableMessages)

note right: optional message

MC -[#black]> DR : { totalMessages, messagesReadyForRetrieval } 

DR -[#dodgerblue]> MC: Request Retrieve (*RequestRetrieve) \n { limit, shouldPeek } 

MC -[#black]> DR : { generalInformation, messages [ originalMessage. metaInformation ] }

DR -[#dodgerblue]> MC: Acknowledge request received message (messageResponse) \n { organisationResponse }

MC -[#black]> DR : { wmdaResponse } 


== PR Retrieving Request Received Message(s) ==

PR --[#dodgerblue]> MC: Check Available Messages (AvailableMessages)

MC -[#black]> PR : { totalMessages, messagesReadyForRetrieval } 

PR -[#dodgerblue]> MC: Retrieve Acknowledge request Received Messages (messageResponseRetrieve)  \n { limit | messageSequenceNumber, shouldPeek  }

MC -[#black]> PR: { generalInformation, messages [ originalMessage. metaInformation ] }


== DR Sending Response ==

DR -[#dodgerblue]> MC : Result (*ResponseRequest)

MC -[#black]> DR : { wmdaResponse }


== PR Retrieving Response(s) == 

PR --[#dodgerblue]> MC: Check Available Messages (AvailableMessages)

MC -[#black]> PR : { totalMessages, messagesReadyForRetrieval } 

PR -[#dodgerblue]> MC: Result Retrieve (*ResponseRetrieve) { limit, shouldPeek } 

MC -[#black]> PR: { generalInformation, messages [ originalMessage. metaInformation ] }

PR -[#dodgerblue]> MC : Acknowledge response received (messageResponse) \n { organisationResponse }

MC-[#black]> PR : { wmdaResponse }


== DR Retrieving Result Response Received Message(s) == 

DR --[#dodgerblue]> MC: Check Available Messages (AvailableMessages) 

MC -[#black]> DR : { totalMessages, messagesReadyForRetrieval } 

DR -[#dodgerblue]> MC: Retrieve Acknowledge Response Received messages (messageResponseRetrieve) \n { limit | messageSequenceNumber, shouldPeek  }

MC -[#black]> DR :  { generalInformation, messages [ originalMessage. metaInformation ] }


@enduml


Document exchange

how to include an attachment exchange in a workflow

e.g. generic request:


@startuml

participant "Patient Registry" as PR

control "Match-Connect" as MC

control "Search & Match Service" as SM

participant "Donor Registry" as DR

skinparam SequenceMessageAlign center

skinparam dpi 92

== Register Patient ==

PR -> SM : Create Patient

activate SM #FFBBBB

SM -> PR : Return wmdaId

deactivate SM

== Start Search ==


PR -> SM : Start Search

activate SM #FFBBBB

SM -> PR : Return searchId

deactivate SM

PR -> SM : Check search status

activate SM #FFBBBB

SM -> PR : Return search status (Completed, Running, Errored)

deactivate SM


PR -> SM : Retrieve search results

activate SM #FFBBBB

SM -> PR : Return search results

deactivate SM


== Making Request ==

PR -[#dodgerblue]> MC : Upload attachment (for more details see technical process below)

activate MC #FFBBBB

MC -[#dodgerblue]> PR : Provide AttachmentGuid

deactivate MC

PR -[#dodgerblue]> DR : Generic Request (incl. Embedded Patient Block, and Attachment Block)

DR -[#dodgerblue]> MC : Download attachment (for more details see technical process below)

activate MC #FFBBBB

MC -[#dodgerblue]> DR : Provide attachment

deactivate MC

DR -[#dodgerblue]> PR : Reservation Response (incl. Embedded Donor Block)


== Getting Response ==

PR -[#dodgerblue]> DR : Request Cancellation

DR -[#dodgerblue]> PR : Request Rejection

@enduml



Technical process for sending and receiving attachments during a request via Match-Connect


@startuml

participant "Sending Registry" as SR

control "Match-Connect" as MC

control "Database" as DB

control "Blob Storage" as BS

participant "Receiving Registry" as RR

skinparam SequenceMessageAlign center

skinparam dpi 92

== Upload document ==

SR -> MC : Upload Attachment (including Blob for attachment)

activate MC #FFBBBB

MC -> DB : Store: AttachmentGuid, Filename, Full Path, Sender ION, ...

MC -> BS : Store: Attachment (blob)

MC -> SR : Return 'AttachmentGuid'

deactivate MC


== 'send' document as part of a request ==

SR -> RR : Send API call with non empty 'AttachmentBlock'

RR -> SR : Respond to the respective message + download the attachment


== Download document ==

RR -> MC : Request attachment (send AttachmentGuid)

activate MC #FFBBBB

MC -> DB : Check: AttachmentGuid, Filename, Full Path, Sender ION, ...

MC -> BS : Fetch: Attachment (blob)

MC -> RR : Return attachment

deactivate MC

@enduml



v1.0.1