Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .env
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
SHR_VERSION=v0.7.1
FHIR_CONVERTER_VERSION=v3.2.1
OMANG_SVC_VERSION=v1.6.3
SHR_VERSION=v0.8.0
FHIR_CONVERTER_VERSION=v3.3.0-beta
OMANG_SVC_VERSION=v1.6.5
6 changes: 3 additions & 3 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,14 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v1
uses: actions/checkout@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
uses: docker/setup-buildx-action@v2

-
name: Login to GitHub Container Registry
uses: docker/login-action@v1
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ secrets.GHCR_USER }}
Expand Down
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -48,4 +48,6 @@ server/log

*.tar

data/*
data/*

*.bak
25 changes: 25 additions & 0 deletions certs/selfsigned.crt
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
-----BEGIN CERTIFICATE-----
MIIEMzCCAxugAwIBAgIUPZuJLyvfxhaedprEdyqgcvbVhIcwDQYJKoZIhvcNAQEL
BQAwgagxCzAJBgNVBAYTAkJXMRMwEQYDVQQIDApTb21lLVN0YXRlMREwDwYDVQQH
DAhHYWJvcm9uZTEbMBkGA1UECgwSTWluaXN0cnkgb2YgSGVhbHRoMRQwEgYDVQQL
DAtJbmZvcm1hdGljczEZMBcGA1UEAwwQaGllLXBpbG90Lmdvdi5idzEjMCEGCSqG
SIb3DQEJARYUa2dha2dlLnRhbEBnbWFpbC5jb20wHhcNMjIwODIxMDM0MzUzWhcN
MjMwODIxMDM0MzUzWjCBqDELMAkGA1UEBhMCQlcxEzARBgNVBAgMClNvbWUtU3Rh
dGUxETAPBgNVBAcMCEdhYm9yb25lMRswGQYDVQQKDBJNaW5pc3RyeSBvZiBIZWFs
dGgxFDASBgNVBAsMC0luZm9ybWF0aWNzMRkwFwYDVQQDDBBoaWUtcGlsb3QuZ292
LmJ3MSMwIQYJKoZIhvcNAQkBFhRrZ2FrZ2UudGFsQGdtYWlsLmNvbTCCASIwDQYJ
KoZIhvcNAQEBBQADggEPADCCAQoCggEBAKWG7bCAtrbrXn/gvAjmfewtrrw2cgGh
DO8dC8NWVDBz8YOHYZ+l/i6GYtoKP/AbMLgHrBDRBaMOlEjbdCH9IrxqiUD2li8/
GxoFG13OqtedMkJ4IWNOQmVxUM98A8BYQgDdRtV9doa6Qg4/0XaTGEn4gTNaIMAE
qGI5kP0d7+MVLm9xlYJGWb+QQR+t5qGQokghLL7psgfHSt8tn9TrjAhUouIPVm08
TcCEI0fO31nYFw2yWoheR7HbNOiuJuWbCu4upMQFiQMo+7PZpPoq2DyQPVhqA3Mx
sLhvSeKeHJqttgR86njxzGMmYi/rHXjb8hBNWMVcyuk1Fii3bNdb9bcCAwEAAaNT
MFEwHQYDVR0OBBYEFAd5L+/D3bbjLOa+bA/wLCWy9kDgMB8GA1UdIwQYMBaAFAd5
L+/D3bbjLOa+bA/wLCWy9kDgMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEL
BQADggEBAKJbhsJnKZEKIZGEvuVa46n/qio3zwGZKJT/GO9CNykrpBFU8fHxUjLY
NtcZaOXfo9XGVIbKb6f05/w1PEan/qzJORAjnNUlUMa3eNJpTasGn/CcWkg86nnc
aed05+c57GhxESS09eLxNaHvA9sAzb75uyZKjgslnla958JxPttU7fA3ynA4rhhr
9ZtGEjg2VG9qw2JC9cwlCdYxpSyH4Ux1ntJNQviQfcuDaee/KDII4nN0pWqok46n
rRGG8lKwDnaGABGktFZpvN6nfR25fJCQtLLeAatOgSxsrQ0wsnX9RhIiYiMt5E5f
S0NPyB0NFIv4RlUEWF8hSZUE5J7EczA=
-----END CERTIFICATE-----
28 changes: 28 additions & 0 deletions certs/selfsigned.key
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQClhu2wgLa2615/
4LwI5n3sLa68NnIBoQzvHQvDVlQwc/GDh2Gfpf4uhmLaCj/wGzC4B6wQ0QWjDpRI
23Qh/SK8aolA9pYvPxsaBRtdzqrXnTJCeCFjTkJlcVDPfAPAWEIA3UbVfXaGukIO
P9F2kxhJ+IEzWiDABKhiOZD9He/jFS5vcZWCRlm/kEEfreahkKJIISy+6bIHx0rf
LZ/U64wIVKLiD1ZtPE3AhCNHzt9Z2BcNslqIXkex2zToriblmwruLqTEBYkDKPuz
2aT6Ktg8kD1YagNzMbC4b0ninhyarbYEfOp48cxjJmIv6x142/IQTVjFXMrpNRYo
t2zXW/W3AgMBAAECggEAZi9XyOCM63t+CR+ptSzli8nf1x0dYFgV7f9WZa6Dpq3M
6M/Iuo/0zK/1knlFY2rFtrY1yOPgwPqdHCUuGlV0/jAer1YK/PvONU/1xwFwgk7u
2g3jPrTvVESSCKSchD9376Sqt90OMLoHUVigbLz9/5xD1nnLQf8eHBVBpqC2mM5a
ObNqtPGNfxcW7Glk3kIH/xo2zuNXFl2v0h1THLqcRCZHzsySo0DQ6xn4gmWipWzw
W/6YXS4x2DxxcX7dyzmU0iFp7ppkK90J/fQ1gQ7f1754GIsTMRYSVbrTgQ2ORCO6
vS9oZWMXKWOyQy5guhof/vbogJQTAjJC3oEPy92VYQKBgQDX/2ZLfQuSIuvPSUFx
8LhahDAzO7ZVH0UenRIxxp3oW2tiJUCKZosZWkP44PpfTNwqCGTf893cshz71jX5
AfBgJ/FhCr81nbXV3CyrcmqRzaxE3eOpLaVE+Vx4/qHOr1oaXN/1+0vlUKyUY2V1
tP7pv1z63qlGGl49MJb71MHhPwKBgQDELq7KWn9+f9KvsulUB7qj9pkslN3AV1l/
iu4UNE7sg2yc8srDeO7o7MgIgk2qijI+L0LLsCMHjXC84BmmcPO//7Elmr+h9SDN
UFQACiWWDh1wPXTgqvVfj48UzHC8T8UoG58Yrer4fsXQCIdNE1t7SyMd+8fvHypw
vKxq54/ViQKBgDJgYcZXarxxopfc2QOvBgAudmNsmNDvkxpZveWYEjogIEJqt8vP
sL9/+vxv1FUnwu2WuZg181fGvtXJlxr1Zc+3YSel7wSdPMydJlnyPIK2+mexbKiH
edVFZ1jc4nYnFZeyc5WWP5RDJY0SRZaXWSDBPflQtyAfhD03OO+RJorXAoGAJgju
9mhpQ3tAu7OyLQp6kwNiWxRZkcrdnS6wTdZ+Xrh0PFGOIiu2Fg6iEZRBvoigiRHc
n2T8xaAUdWn1TyGjAFxwWdwQvzOpMmUahA9zjg4agwJHQK+kdux8Twn76WaF0Ora
A4zke10IuPaOVNEl8Vd17YA9GQ0vyz+pJejTKBECgYEAjm/D2DWNrap61C7TFfSI
fd11O1vLiTnWs81w2xjA8qlwTugH4avwoHrnRweDL+EQWfaxdMVlSV3+73Be117e
IAauSgbdE8xdl8UdjLSGZnjTAG70k8UcBeCKez7bs0f0fUooIPxqCJnbIIUP7GMD
XOZPHZ7suxe6Ysa1ivyuj1M=
-----END PRIVATE KEY-----
142 changes: 142 additions & 0 deletions configs/opencr/PatientRelationship.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
{
"resourceType": "Basic",
"id": "patientreport",
"meta": {
"versionId": "1",
"lastUpdated": "2019-07-30T07:34:24.098+00:00",
"profile": [
"http://ihris.org/fhir/StructureDefinition/iHRISRelationship"
]
},
"extension": [
{
"url": "http://ihris.org/fhir/StructureDefinition/iHRISReportDetails",
"extension": [
{
"url": "label",
"valueString": "Patient Report"
},
{
"url": "name",
"valueString": "patients"
},
{
"url": "http://ihris.org/fhir/StructureDefinition/iHRISReportElement",
"extension": [
{
"url": "label",
"valueString": "gender"
},
{
"url": "name",
"valueString": "gender"
}
]
},
{
"url": "http://ihris.org/fhir/StructureDefinition/iHRISReportElement",
"extension": [
{
"url": "label",
"valueString": "birthDate"
},
{
"url": "name",
"valueString": "birthDate"
}
]
},
{
"url": "http://ihris.org/fhir/StructureDefinition/iHRISReportElement",
"extension": [
{
"url": "label",
"valueString": "given"
},
{
"url": "name",
"valueString": "name.where(use='official').last().given"
}
]
},
{
"url": "http://ihris.org/fhir/StructureDefinition/iHRISReportElement",
"extension": [
{
"url": "label",
"valueString": "family"
},
{
"url": "name",
"valueString": "name.where(use='official').last().family"
}
]
},
{
"url": "http://ihris.org/fhir/StructureDefinition/iHRISReportElement",
"extension": [
{
"url": "label",
"valueString": "fullname"
},
{
"url": "name",
"valueString": "name.where(use='official').last().text"
}
]
},
{
"url": "http://ihris.org/fhir/StructureDefinition/iHRISReportElement",
"extension": [
{
"url": "label",
"valueString": "phone"
},
{
"url": "name",
"valueString": "telecom.where(system='phone').value"
}
]
},
{
"url": "http://ihris.org/fhir/StructureDefinition/iHRISReportElement",
"extension": [
{
"url": "label",
"valueString": "artnumber"
},
{
"url": "name",
"valueString": "identifier.where(system='http://moh.bw.org/ext/identifier/pi').value"
}
]
},
{
"url": "http://ihris.org/fhir/StructureDefinition/iHRISReportElement",
"extension": [
{
"url": "label",
"valueString": "nationalid"
},
{
"url": "name",
"valueString": "identifier.where(system='http://moh.bw.org/ext/identifier/omang').last().value"
}
]
}
]
}
],
"code": {
"coding": [
{
"system": "http://ihris.org/fhir/ValueSet/ihris-resource",
"code": "iHRISRelationship"
}
],
"text": "iHRISRelationship"
},
"subject": {
"reference": "StructureDefinition/Patient"
}
}
30 changes: 22 additions & 8 deletions configs/opencr/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -44,32 +44,46 @@
},
"clients": [
{
"id": "lis",
"displayName": "Lab Info System"
"id": "tester",
"displayName": "PIMS"
},
{
"id": "postman",
"displayName": "Postman"
},
{
"id": "shr-client",
"displayName": "Shared Health Record"
},
{
"id": "omang-api",
"displayName": "Omang Service"
}
],
"systems": {
"CRBaseURI": "http://openclientregistry.org/fhir",
"internalid": {
"uri": [
"http://moh.bw.org/ext/identifier/omang"
"http://moh.bw.org/ext/identifier/mr",
"http://omang.bw.org/ext/identifier/internalid",
"http://openelis-global.org/pat_nationalId"
],
"displayName": "Internal ID"
},
"nationalid": {
"uri": "http://health.go.ug/cr/natioanlid",
"displayName": "National ID"
"uri": "http://moh.bw.org/ext/identifier/omang",
"displayName": "National ID - OMANG"
},
"artnumber": {
"uri": "http://health.go.ug/cr/artnumber",
"displayName": "ART Number"
"uri": "http://moh.bw.org/ext/identifier/pi",
"displayName": "Patient Identifier"
},
"brokenMatch": {
"uri": "http://clientregistry.org/brokenMatch"
}
},
"sync": {
"lastFHIR2ESSync": "2022-08-31T19:24:26"
"lastFHIR2ESSync": "2023-04-04T22:03:09"
},
"__comments": {
"matching.tool": "this tells if the app should use mediator algorithms or elasticsearch algorithms for matching, two options mediator and elasticsearch"
Expand Down
81 changes: 81 additions & 0 deletions configs/opencr/decisionRules.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
{
"__comments": {
"path": "Its a fhir path, for syntax refer to https://www.hl7.org/fhir/fhirpath.html",
"matchingType": "Must be specified, it can either",
"threshold": {
"levenshtein": "Lower the number, the closer the match, 0 being exact match, max threshold is 2",
"jaro-winkler": "number between 0 and 1, where 0 for no match and 1 for exact match"
},
"nullHandling": {
"description": "this option tells openCR what to do when a field is empty, when set at the top level of the rule then it will apply to all fields, if set at the respective field then it will apply for that particular field",
"values": "either conservative, moderate or greedy"
},
"nullHandlingBothFields": {
"description": "this option tells openCR what to do when both fields are empty and When this is set, then nullHandling applies to when only 1 of the fields is null, when set at the top level of the rule then it will apply to all fields, if set at the respective field then it will apply for that particular field",
"values": "either conservative, moderate or greedy"
},
"supported_algorithms": {
"elasticsearch": [
"https://github.com/intrahealth/similarity-scoring"
]
}
},
"rules": [
{
"matchingType": "deterministic",
"fields": {
"nationalid": {
"algorithm": "jaro-winkler-similarity",
"threshold": 1,
"fhirpath": "identifier.where(system='http://moh.bw.org/ext/identifier/omang').value",
"null_handling": "conservative",
"null_handling_both": "conservative",
"espath": "nationalid"
}
},
"autoMatchThreshold": 2
},
{
"matchingType": "deterministic",
"fields": {
"given": {
"algorithm": "jaro-winkler-similarity",
"threshold": 0.8,
"fhirpath": "name.where(use='official').given",
"null_handling": "moderate",
"null_handling_both": "moderate",
"espath": "given"
},
"family": {
"algorithm": "jaro-winkler-similarity",
"threshold": 0.9,
"fhirpath": "name.where(use='official').family",
"null_handling": "moderate",
"null_handling_both": "moderate",
"espath": "family"
},
"birthdate": {
"algorithm": "exact",
"fhirpath": "birthDate",
"null_handling": "moderate",
"null_handling_both": "moderate",
"espath": "birthDate"
},
"artnumber": {
"algorithm": "exact",
"fhirpath": "identifier.where(system='http://moh.bw.org/ext/identifier/pi').value",
"null_handling": "moderate",
"null_handling_both": "moderate",
"espath": "artnumber"
}
},
"potentialMatchThreshold": 3,
"filters": {
"gender": {
"fhirpath": "gender",
"espath": "gender"
}
}
}
]
}
4 changes: 2 additions & 2 deletions configs/openhim-console/default.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
"version": "1.13.2",
"minimumCoreVersion": "5.2.0",
"protocol": "https",
"host": "core.moh.org.bw",
"host": "hie-pilot.gov.bw",
"hostPath": "",
"port": "",
"port": "8090",
"title": "Botswana HIE Admin Console",
"footerTitle": "OpenHIM Administration Console",
"footerPoweredBy": "<a href='http://openhim.org/' target='_blank'>Powered by OpenHIM</a>",
Expand Down
Loading