Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
How it works
ID,Given_Name,Family_Name,Gender_at_Birth,Date_of_Birth,City,Phone_Number,National_ID
rec-00000000-aaa-0,Endalekachew,Onyango,male,20171114,Nairobi,091-749-4674,198804042874913
rec-00000001-aaa-0,Fikadu,Mwendwa,male,19840626,Nairobi,022-460-8846,199403050409528
rec-00000002-bbb-0,Biniyam,Maalim,male,20191022,Nairobi,098-119-7244,200006231841948{
"contentType": "BATCH_INTERACTION",
"tag": "import-5334297603633827819uploadConfig",
"stan": "2024/08/07 08:24:07:0000001",
"interaction": {
"sourceId": {
"facility": "FA2",
"patient": "patient_id"
},
"uniqueInteractionData": {
"auxDateCreated": "2024-08-07T08:24:08.174750419",
"auxUserFields": [
{
"scTag": "aux_id",
"tag": "auxId",
"value": "rec-0000000708-02"
},
{
"scTag": "aux_clinical_data",
"tag": "auxClinicalData",
"value": "RANDOM DATA(865)"
}
]
},
"demographicData": {
"fields": [
{
"tag": "given_name",
"value": "patricia"
},
{
"tag": "family_name",
"value": "solis"
},
{
"tag": "gender",
"value": "female"
},
{
"tag": "dob",
"value": "19821106"
},
{
"tag": "city",
"value": "chicago"
},
{
"tag": "phone_number",
"value": "0133705553"
},
{
"tag": "national_id",
"value": "198211065001099"
}
]
}
},
"sessionMetadata": {
"commonMetaData": {
"stan": "2024/08/07 08:24:07:0000001",
"uploadConfig": {
"reportingRequired": false,
"uploadWorkflow": 0,
"minThreshold": 0.65,
"linkThreshold": 0.7,
"maxThreshold": 0.75,
"marginWindowSize": 0.1
}
},
"uiMetadata": {
"timeStamp": null
},
"asyncReceiverMetadata": {
"timeStamp": "2024/08/07 08:24:08"
},
"etlMetadata": {
"timeStamp": "2024/08/07 08:27:05"
},
"controllerMetadata": {
"timeStamp": null
},
"linkerMetadata": {
"timeStamp": null
}
}
}curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"source "/home/${USER}/.sdkman/candidates/java/current"
git clone https://github.com/jembi/JeMPI.git && cd JeMPI/./local-deployment.shskunk@skunks-server:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:bf:f5:e2 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.137/24 metric 100 brd 192.168.1.255 scope global dynamic enp0s3
valid_lft 86346sec preferred_lft 86346sec
inet6 fdc2:75c1:449e:9200:a00:27ff:febf:f5e2/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 7145sec preferred_lft 3545sec
inet6 fe80::a00:27ff:febf:f5e2/64 scope link
valid_lft forever preferred_lft foreversudo vim /etc/hostscd /devops/linux/docker/conf/envexport REACT_APP_JEMPI_BASE_API_HOST=http://${SERVER_IP} eg. http://192.168.10.90# If you have less than 32Gb ram, run the following script
./create-env-linux-low-1.sh
# If you have 32Gb ram or more, run the following script
./create-env-linux-high-1.sh./b-swarm-2-leave.sh./b-swarm-1-init-node1.sh./x-swarm-a-set-insecure-registries.sh./c-registry-1-create.sh./a-images-1-pull-from-hub.sh
./c-registry-2-push-hub-images.sh# build, push and run the whole stack (backend + ui)
./d-stack-1-build-all-reboot
# build, push and run the backend services only
./d-stack-1-build-java-reboot
# build, push and run the UI
./d-stack-1-build-ui-rebootgit clone https://github.com/jembi/platform.git && cd platform/sudo mkdir -p /tmp/logs/./build-image.shdocker swarm init./get-cli.sh - name: mpi
packages:
- interoperability-layer-openhim
- reverse-proxy-nginx
- message-bus-kafka
- job-scheduler-ofelia
- monitoring
- client-registry-jempi
- identity-access-manager-keycloak
- openhim-mapping-mediator
envFiles:
- mpi.env./instant-linux package init -p mpiEnable SSO using Keycloak
git clone https://github.com/jembi/JeMPI.git && cd JeMPI/export REACT_APP_JEMPI_BASE_API_PORT=50001
export REACT_APP_ENABLE_SSO="true"cd devops/linux/docker/deployment
./local-deployment.sh
API endpoints documentation
[
{
"fieldName": "type",
"accessLevel": [],
"fieldLabel": "Record Type",
"scope": [
"/patient/:uid",
"/match-details",
"/patient/:uid/linked-records"
],
"groups": [
"demographics",
"linked_records"
],
"fieldType": "String",
"validation": {
"regex":"/(Golden|Interaction)/",
"required": true,
"onErrorMessage": "This field cannot be empty"
}
},
...
]{
"limit": 25,
"offset":10 ,
"startDate":"2024-04-15T23:59:59" ,
"endDate": "2024-04-15T23:59:59",
"states": ["OPEN"]
}{
"count": 10,
"skippedRecords": 773,
"records": [
{
"score": 0.6156526,
"candidates": [
{
"score": 0.6156526,
"golden_id": "0x2a"
}
],
"golden_id": "0x2a",
"names": "katanewa",
"patient_id": "0x2b",
"created": "2023-08-31",
"id": "a448a79e-09c1-4e84-b7ed-0d0c3c4d3f61",
"state": "New",
"type": "THRESHOLD"
},
{
"score": 1.0,
"candidates": [
{
"score": 0.556004,
"golden_id": "0xb"
}
],
"golden_id": "0xd",
"names": "zuli,ezther",
"patient_id": "0xc",
"created": "2023-08-31",
"id": "3b0f6dcf-428b-4c07-9b61-48220633569f",
"state": "New",
"type": "THRESHOLD"
}
]
}{
"uid":"0x4"
}{
"uid": "0x4",
"sourceId": {
"uid": "0x3",
"facility": "MA2",
"patient": "198702145001118"
},
"uniqueInteractionData": {
"auxDateCreated": "2023-08-31T13:44:44.576006034",
"auxId": "rec-0000000001--0",
"auxClinicalData": "RANDOM DATA(645)"
},
"demographicData": {
"givenName": "gift",
"familyName": "zulu",
"gender": "male",
"dob": "19870214",
"city": "lusaka",
"phoneNumber": "0100563200",
"nationalId": "198702145001118"
}
}{
"gid":"0x2b20"
}{
"goldenRecord": {
"uid": "0x2e",
"sourceId": [
{
"uid": "0x31",
"facility": "MA1",
"patient": "199508125001143"
}
],
"uniqueGoldenRecordData": {
"auxDateCreated": "2023-08-31T13:44:47.655570503",
"auxAutoUpdateEnabled": true,
"auxId": "rec-0000000005--4"
},
"demographicData": {
"givenName": "katanekwa",
"familyName": "simukungwe",
"gender": "male",
"dob": "1995o812",
"city": "kitwe",
"phoneNumber": "0112302557",
"nationalId": "199508125001143"
}
},
"interactionsWithScore": [
{
"interaction": {
"uid": "0x32",
"sourceId": {
"uid": "0x31",
"facility": "MA1",
"patient": "199508125001143"
},
"uniqueInteractionData": {
"auxDateCreated": "2023-08-31T13:44:44.653638164",
"auxId": "rec-0000000005--6",
"auxClinicalData": "RANDOM DATA(998)"
},
"demographicData": {
"givenName": "katanekwa",
"familyName": "simukungwe",
"gender": "male",
"dob": "19950812",
"city": "kitwe",
"phoneNumber": "0112302557",
"nationalId": "199508125001143"
}
},
"score": 1.0
},
{
"interaction": {
"uid": "0x33",
"sourceId": {
"uid": "0x31",
"facility": "MA1",
"patient": "199508125001143"
},
"uniqueInteractionData": {
"auxDateCreated": "2023-08-31T13:44:44.657099612",
"auxId": "rec-0000000005--7",
"auxClinicalData": "RANDOM DATA(779)"
},
"demographicData": {
"givenName": "katanekwa",
"familyName": "simukungwe",
"gender": "male",
"dob": "",
"city": "kitwie",
"phoneNumber": "011230z557",
"nationalId": "199508125001143"
}
},
"score": 1.0
}
]
}{
"uidList": [
"0x4d03",
"0x3a07",
"0x2b20"
]
}[
{
"goldenRecord": {
"uid": "0x4d03",
"sourceId": [
{
"uid": "0x4d01",
"facility": "MA3",
"patient": "198304285002129"
},
{
"uid": "0x4d08",
"facility": "MA1",
"patient": "198304285002129"
},
{
"uid": "0x4d0a",
"facility": "MA4",
"patient": "198304285002129"
}
],
"uniqueGoldenRecordData": {
"auxDateCreated": "2023-09-01T07:28:06.846286719",
"auxAutoUpdateEnabled": true,
"auxId": "rec-0000000997--0"
},
"demographicData": {
"givenName": "davison",
"familyName": "nyambe",
"gender": "male",
"dob": "19830428",
"city": "mbala",
"phoneNumber": "0332675512",
"nationalId": "198304285002129"
}
},
"interactionsWithScore": [
{
"interaction": {
"uid": "0x4d02",
"sourceId": {
"uid": "0x4d01",
"facility": "MA3",
"patient": "198304285002129"
},
"uniqueInteractionData": {
"auxDateCreated": "2023-09-01T07:26:04.152254576",
"auxId": "rec-0000000997--0",
"auxClinicalData": "RANDOM DATA(693)"
},
"demographicData": {
"givenName": "davxison",
"familyName": "nyambe",
"gender": "",
"dob": "19820428",
"city": "mbala",
"phoneNumber": "",
"nationalId": "1983o4285002129"
}
},
"score": 0.631448
}
]
}
]{
"records": [
"0x2715",
"0x2718",
"0x271b",
"0x271d",
"0x2726",
"0x2729",
"0x272c",
"0x2733",
"0x2737",
"0x273a",
"0x273e",
"0x2748",
"0x274f",
"0x2752",
"0x2754",
"0x275c",
"0x2761"
]
}{
"offset":0,
"length":10
}{
"goldenIds": [
"0x2a",
"0x27",
"0x23",
"0x1c",
"0x19",
"0x16",
"0xd",
"0xb",
"0x8",
"0x5"
]
}{
"gid":"0x2b20"
}{
"entries": [
{
"inserted_at": "2023-09-04 08:37:02.000665",
"created_at": "2023-09-04 08:37:02.000657",
"interaction_id": "0x4c",
"golden_id": "0x4d",
"entry": "Interaction -> New GoldenRecord (1.000000)"
},
{
"inserted_at": "2023-09-04 08:37:02.000732",
"created_at": "2023-09-04 08:37:02.000725",
"interaction_id": "0x4f",
"golden_id": "0x4d",
"entry": "Interaction -> Existing GoldenRecord (0.72150)"
}
]
}{
"uid":"0x2b1f"
}{
"entries": [
{
"inserted_at": "2023-09-04 08:37:02.000665",
"created_at": "2023-09-04 08:37:02.000657",
"interaction_id": "0x4c",
"golden_id": "0x4d",
"entry": "Interaction -> New GoldenRecord (1.000000)"
}
]
}{
"count": 1911
}{
"count": 5035
}{
"goldenRecords": 1911,
"interactions": 5035
}{
"notificationId": "53512711-aca5-4bfb-a239-51e438d74d36",
"state": "Pending"
}{
"parameters": [
{
"fieldName": "givenName",
"value": "John",
"distance": 0
},
{
"fieldName": "familyName",
"value": "Doe",
"distance": 0
},
{
"fieldName": "dob",
"value": "19870423",
"distance": 0
},
{
"fieldName": "nationalId",
"value": "198804042874913",
"distance": 0
}
],
"sortBy": "givenName",
"sortAsc": true,
"offset": 0,
"limit": 10
}{
"data": [
{
"goldenRecord": {
"uid": "0x1019",
"sourceId": [
{
"uid": "0x1017",
"facility": "FA3",
"patient": "198704115001082"
}
],
"uniqueGoldenRecordData": {
"auxDateCreated": "2023-09-04T14:39:52.258643516",
"auxAutoUpdateEnabled": true,
"auxId": "rec-0000000425--0"
},
"demographicData": {
"givenName": "jan",
"familyName": "daka",
"gender": "",
"dob": "19879411",
"city": "mongu",
"phoneNumber": "",
"nationalId": "898704115001082"
}
},
"interactionsWithScore": [
{
"interaction": {
"uid": "0x1018",
"sourceId": {
"uid": "0x1017",
"facility": "FA3",
"patient": "198704115001082"
},
"uniqueInteractionData": {
"auxDateCreated": "2023-09-04T14:38:48.901033856",
"auxId": "rec-0000000425--0",
"auxClinicalData": "RANDOM DATA(290)"
},
"demographicData": {
"givenName": "jan",
"familyName": "daka",
"gender": "",
"dob": "19879411",
"city": "mongu",
"phoneNumber": "",
"nationalId": "898704115001082"
}
},
"score": 1.0
}
]
},
{
"goldenRecord": {
"uid": "0x1220",
"sourceId": [
{
"uid": "0x121e",
"facility": "FA5",
"patient": "198308125001080"
}
],
"uniqueGoldenRecordData": {
"auxDateCreated": "2023-09-04T14:39:59.44475916",
"auxAutoUpdateEnabled": true,
"auxId": "rec-0000000480--2"
},
"demographicData": {
"givenName": "jan",
"familyName": "dakq",
"gender": "",
"dob": "",
"city": "",
"phoneNumber": "",
"nationalId": "1983081q5001080"
}
},
"interactionsWithScore": [
{
"interaction": {
"uid": "0x121f",
"sourceId": {
"uid": "0x121e",
"facility": "FA5",
"patient": "198308125001080"
},
"uniqueInteractionData": {
"auxDateCreated": "2023-09-04T14:38:49.755542027",
"auxId": "rec-0000000480--2",
"auxClinicalData": "RANDOM DATA(424)"
},
"demographicData": {
"givenName": "jan",
"familyName": "dakq",
"gender": "",
"dob": "",
"city": "",
"phoneNumber": "",
"nationalId": "1983081q5001080"
}
},
"score": 1.0
}
]
}
],
"pagination": {
"total": 7
}
}{
"data": [
{
"uid": "0x1018",
"sourceId": {
"uid": "0x1017",
"facility": "FA3",
"patient": "198704115001082"
},
"uniqueInteractionData": {
"auxDateCreated": "2023-09-04T14:38:48.901033856",
"auxId": "rec-0000000425--0",
"auxClinicalData": "RANDOM DATA(290)"
},
"demographicData": {
"givenName": "jan",
"familyName": "daka",
"gender": "",
"dob": "19879411",
"city": "mongu",
"phoneNumber": "",
"nationalId": "898704115001082"
}
},
{
"uid": "0xaf4",
"sourceId": {
"uid": "0xaf3",
"facility": "FA2",
"patient": "199201285001099"
},
"uniqueInteractionData": {
"auxDateCreated": "2023-09-04T14:38:46.01708765",
"auxId": "rec-0000000297--0",
"auxClinicalData": "RANDOM DATA(147)"
},
"demographicData": {
"givenName": "jan",
"familyName": "daia",
"gender": "female",
"dob": "",
"city": "mwens3",
"phoneNumber": "06841w1573",
"nationalId": "199201285001099"
}
}
],
"pagination": {
"total": 18
}
}{
"$or": [
{
"parameters": [
{
"fieldName": "givenName",
"value": "John",
"distance": 0
},
{
"fieldName": "familyName",
"value": "Doe",
"distance": 3
}
]
},
{
"parameters": [
{
"fieldName": "nationalId",
"value": "XXXXXXXXXXXXXX",
"distance": 0
}
]
}
],
"sortBy": "given_name",
"sortAsc": true,
"offset": 0,
"limit": 10
}{
"goldenIds": ["0x26bc"],
"interactionId": "0x26bb"
}{
"parameters": [
{
"fieldName": "givenName",
"value": "John",
"distance": 0
},
{
"fieldName": "familyName",
"value": "Doe",
"distance": 3
}
],
"sortBy": "givenName",
"sortAsc": true,
"offset": 0,
"limit": 10
}{
"candidateThreshold": 0.9,
"sourceId": {
"facility": "fac1",
"patient": "12345689"
},
"uniqueInteractionData": {
"auxDateCreated": "2016-10-30T14:22:25.00Z",
"auxClinicalData" : "REGISTER DATA",
"auxId" : "1235",
"auxIid" : "0x9"
},
"demographicData": {
"givenName": "Sanket",
"familyName": "",
"gender": "male",
"dob": "",
"city": "Kolhapur",
"nationalId": ""
}
}{
"operand": {
"fn": "eq",
"name": "givenName",
"value": "Sanket"
},
"operands": [
{
"operator": "and",
"operand": {
"fn": "match",
"distance": 1,
"name": "familyName",
"value": "Shevare"
}
}
]
}{
"candidateThreshold": 0.9,
"demographicData": {
"givenName": "XX",
"familyName": "YYY",
"dob": "20000101",
"gender": "female",
"phoneNumber": "123456789",
"city": "Cape Town",
"nationalId": "123456789"
}
}{
"goldenRecords": [
{
"goldenId": "0x9ed",
"sourceId": [
{
"uid": "0x9e9"
}
],
"customUniqueGoldenRecordData": {
"auxDateCreated": "2023-09-04T14:39:26.351509536",
"auxAutoUpdateEnabled": true,
"auxId": "rec-0000000272--1"
},
"demographicData": {
"givenName": "alx",
"familyName": "swna",
"gender": "",
"dob": "",
"city": "ndolad",
"phoneNumber": "",
"nationalId": ""
}
},
{
"goldenId": "0x1220",
"sourceId": [
{
"uid": "0x121e"
}
],
"customUniqueGoldenRecordData": {
"auxDateCreated": "2023-09-04T14:39:59.44475916",
"auxAutoUpdateEnabled": true,
"auxId": "rec-0000000480--2"
},
"demographicData": {
"givenName": "jan",
"familyName": "dakq",
"gender": "",
"dob": "",
"city": "",
"phoneNumber": "",
"nationalId": "1983081q5001080"
}
},
{
"goldenId": "0x1845",
"sourceId": [
{
"uid": "0x1841"
}
],
"customUniqueGoldenRecordData": {
"auxDateCreated": "2023-09-04T14:40:25.363902833",
"auxAutoUpdateEnabled": true,
"auxId": "rec-0000000643--2"
},
"demographicData": {
"givenName": "james",
"familyName": "bansa",
"gender": "female",
"dob": "",
"city": "kansanvshi",
"phoneNumber": "",
"nationalId": "198602245001086"
}
}
]
}{
"notificationId": "432fd5fe-e7db-4d3c-8a4a-fb23e8b9b45f",
"notificationType": "MARGIN",
"interactionId": "0xfb5",
"currentGoldenId": "0xa5f",
"resolutionState": "RELINKED_NEW",
"currentCandidates": [
"0xfaa"
],
"newGoldenId": "",
"score": 1
}{
"goldenUID":"0x34ab",
"interactionUID":"0xfb5",
"sourceUID":"0x30",
"score":2.0
}{
"notificationId": "64c04a03-179f-4696-91ed-881dffc8f818",
"notificationType": "MARGIN",
"interactionId": "0x1f89",
"currentGoldenId": "0xdda",
"resolutionState": "RELINKED",
"currentCandidates": [
"0x1f7c"
],
"newGoldenId": "0x1f7c",
"score": 1
}{
"goldenUID":"0x1f7c",
"interactionUID":"0x1f89",
"sourceUID":null,
"score":1.0
}{
"goldenId":"0x2aeb",
"fields": [
{
"name": "givenName",
"value": "John"
},
{
"name": "familyName",
"value": "Doe"
}
]
}













































cd JeMPI/devops/linux/docker/deployment
./local-deployment.sh
Select Option 5: Backup Postgres & Dgraphcd JeMPI/devops/linux/docker/deployment
./local-deployment.sh
Select Option 6: Restore Postgres & Dgraph