/
Case 7
Case 7
Finding Specific orgUnits / Location by Type
Searching orgunits / locations by its type
Summary of test results
| DHIS2 | FHIR | DHIS2 vs FHIR % |
---|---|---|---|
Average | 0.547128 | 0.355352 | 53.97% |
Test detailed results
logged on Dec 1/ 2022 UTC-7 10:00:00
Performance Testing for Outlet Type | Attempt | DHIS2 API (s) | FHIR API (s) | Improvement (%) |
---|---|---|---|---|
Dominican Republic | Attempt - 1 | 0.571623 | 0.332961 | 71.68% |
| Attempt - 2 | 0.522887 | 0.288102 | 81.49% |
| Attempt - 3 | 0.534688 | 0.274596 | 94.72% |
Honduras | Attempt - 1 | 0.53421 | 0.366531 | 45.75% |
| Attempt - 2 | 0.540515 | 0.350941 | 54.02% |
| Attempt - 3 | 0.530475 | 0.362607 | 46.29% |
Vietnam | Attempt - 1 | 0.566133 | 0.431809 | 31.11% |
| Attempt - 2 | 0.565934 | 0.390195 | 45.04% |
| Attempt - 3 | 0.55769 | 0.400428 | 39.27% |
Overall Average |
| 0.547128 | 0.355352 | 53.97% |
Testing Script
results7 = [{"description": "Performance Testing for Outlet Type", "attempt": "Attempt", "dhis2": "DHIS2 API (s)", "fhir": "FHIR API (s)", "improvement": "Improvement (%)"}]
print("Case #7 - Measuring time taken to find outlet / location by Type")
countries = [ {"iso2": "do", "name": "Dominican Republic", "type": "Farmacia", "code": 18102}, {"iso2": "HN", "name": "Honduras", "type": "Farmacia", "code": 18102},{"iso2": "VN", "name": "Vietnam", "type": "Pharmacy", "code": 18102}]
improvements = []
dhis2_performances = []
fhir_performances = []
for country in countries:
for i in range(1,4):
result7 = {}
if i == 1:
result7['description'] = "{}".format(country['name'])
result7['attempt'] = "Attempt - {}".format(i)
dhis2_url = dhis2_base_url+'iso2={}&type={}&n=100'.format(country['iso2'], country['type'])
result = requests.get(dhis2_url, auth=dhis2_auth)
if result.status_code == 200:
dhis2_performances.append(result.elapsed.total_seconds())
result7['dhis2'] = dhis2_performances[-1]
request_url = fhir_location_url+'address-country={}&type={}&_count=100'.format(country['name'], country['code'])
fhirResult = requests.get(request_url, auth=fhir_auth)
if fhirResult.status_code == 200:
fhir_performances.append(fhirResult.elapsed.total_seconds())
result7['fhir'] = fhir_performances[-1]
improvements.append(((dhis2_performances[-1]/fhir_performances[-1])-1)*100)
result7['improvement'] = '{}%'.format(float("{:.2f}".format(improvements[-1])))
results7.append(result7)
time.sleep(0.01)
result7 = {}
result7['description'] = "Overall Average"
result7['dhis2'] = np.average(dhis2_performances)
result7['fhir'] = np.average(fhir_performances)
result7['improvement'] = '{}%'.format(float("{:.2f}".format(((result7['dhis2']/result7['fhir'])-1)*100)))
results7.append(result7)
print(tabulate(results7, headers='firstrow', tablefmt='pipe'))