|
Algorithm 1 Joining patient records with Sovereign Join: Server side
|
|
Input:
DB1, DB2
|
|
Output: Matching records |
| 1: |
bufferCtr ← 0 |
| 2: |
for
rec1 in DB1
do
|
| 3: |
MSG ← “DB1”, recordID1, rec1 {Prepare message} |
| 4: |
send_MSG(MSG) to SCP {send message} |
| 5: |
get ACK1 from SCP {get acknowledgement} |
| 6: |
bufferCtr ← bufferCtr + 1 {update buffer counter} |
| 7: |
if bufferCtr = BUFFER_SIZE
then
|
| 8: |
for
rec2 in DB2
do
|
| 9: |
MSG ← “DB2”, recordID2, rec2
|
| 10: |
send_MSG(MSG) to SCP |
| 11: |
get ACK2 from SCP |
| 12: |
outputMatchedDB1Id(ACK2) {output match result} |
| 13: |
end for
|
| 14: |
bufferCtr ← 0 {reset buffer counter} |
| 15: |
end if
|
| 16: |
end for |
|