...
DHIS2 | FHIR | DHIS2 vs FHIR % | ||
---|---|---|---|---|
Average | 1.41641292 | 0.578393583782 | 58142.835803% |
Test detailed results
logged on Nov 29Dec 1/ 2022 UTC-7 0809:5204:00
Performance Testing for | Attempt | DHIS2 API | DHIS2 Size | FHIR API | FHIR Size | Improvement % |
---|---|---|---|---|---|---|
El Salvador | Attempt 1 | 1. |
41727 | 141 | 0. |
65739 | 500 |
115. |
59% | ||
Attempt 2 | 1. |
39867 | 141 | 0. |
574834 | 500 |
143. |
32% | ||
Attempt 3 | 1. |
382 | 141 | 0. |
568845 | 500 |
142. |
95% | ||
Kenya | Attempt 1 | 1. |
43245 | 500 | 0. |
598346 | 500 |
139. |
4% | ||
Attempt 2 | 1. |
43526 | 500 | 0. |
581445 | 500 |
146. |
84% | ||
Attempt 3 | 1. |
49501 | 500 | 0. |
569503 | 500 |
162. |
51% | ||
Nigeria | Attempt 1 | 1. |
51636 | 500 | 0. |
582592 | 500 |
160. |
28% | ||
Attempt 2 | 1. |
48614 | 500 | 0. |
613181 | 500 |
142. |
37% | ||
Attempt 3 | 1. |
63908 | 500 | 0. |
567279 | 500 |
188. |
94% | ||
Cameroon | Attempt 1 | 1. |
69394 | 500 | 0. |
591673 | 500 |
186. |
3% | ||
Attempt 2 | 1. |
47116 | 500 | 0. |
563599 | 500 |
161. |
03% | ||
Attempt 3 | 1. |
49798 | 500 | 0. |
566068 | 500 |
164. |
63% | ||
Nepal | Attempt 1 | 1. |
11843 | 12 | 0. |
59532 | 500 |
87. |
87% | ||
Attempt 2 | 1. |
10475 | 12 | 0. |
567694 | 500 |
94. |
6% | ||
Attempt 3 | 1. |
10523 | 12 | 0. |
558964 | 500 |
97. |
73% | ||
Overall Average | 1. |
41292 | 0. |
583782 |
142. |
03% |
Testing Script
Code Block | ||||
---|---|---|---|---|
| ||||
case_results = [{"description": "Performance Testing for", "attempt": "Attempt", "dhis2": "DHIS2 API", "dhis2_size": "DHIS2 Size", "fhir": "FHIR API", "fhir_size": "FHIR Size", "improvement": "Improvement %"}] print("Case #2 - Getting 500 orgUnits/Location 100km around the provided coordinates") improvements = [] dhis2_performances = [] fhir_performances = [] for country in countries: for i in range(1,4): case_result = {} if i == 1: case_result['description'] = "{}".format(country['name']) case_result['attempt'] = "Attempt {}".format(i) dhis2_url = dhis2_base_url+'n=500&c={},{}&d=1000000'.format(country['latitude'], country['longitude']) result = requests.get(dhis2_url, auth=dhis2_auth) if result.status_code == 200: data = result.json() dhis2_performances.append(result.elapsed.total_seconds()) case_result['dhis2'] = dhis2_performances[-1] case_result['dhis2_size'] = len(data['outlet']) request_url = fhir_location_url+'near={}|{}|10000|km&_count=500'.format(country['latitude'], country['longitude']) fhirResult = requests.get(request_url, auth=fhir_auth) if fhirResult.status_code == 200: fhir_data = fhirResult.json() fhir_performances.append(fhirResult.elapsed.total_seconds()) case_result['fhir'] = fhir_performances[-1] case_result['fhir_size'] = len(fhir_data['entry']) if 'entry' in fhir_data else 0 improvements.append(((case_result['dhis2'] - /case_result['fhir'])/case_result['dhis2']-1)*100) case_result['improvement'] = '{}%'.format(float("{:.2f}".format(improvements[-1]))) case_results.append(case_result) time.sleep(0.01) case_result = {} case_result['description'] = "Overall Average" case_result['dhis2'] = np.average(dhis2_performances) case_result['fhir'] = np.average(fhir_performances) case_result['improvement'] = np.average(improvements'{}%'.format(float("{:.2f}".format(((case_result['dhis2']/case_result['fhir'])-1)*100))) case_results.append(case_result) print(tabulate(case_results, headers='firstrow', tablefmt='pipe')) |
...