Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

DHIS2

FHIR

DHIS2 vs FHIR %

Average

0.544344547128

0.364643 355352

3353.012497%

Test detailed results

logged on Nov 29Dec 1/ 2022 UTC-7 0910:2600:00

Performance Testing for Outlet Type

Attempt

DHIS2 API (s)

FHIR API (s)

Improvement (%)

Dominican Republic

Attempt - 1

0.

567389

571623

0.

334102

332961

41

71.

1159

68%

Attempt - 2

0.

522738

522887

0.

288675

288102

44

81.

7764

49%

Attempt - 3

0.

538892

534688

0.

29013

274596

46

94.

1618

72%

Honduras

Attempt - 1

0.

551937

53421

0.

375277

366531

32

45.

0073

75%

Attempt - 2

0.

539953

540515

0.

367432

350941

31

54.

9511

02%

Attempt - 3

0.

527808

530475

0.

37917

362607

28

46.

1614

29%

Vietnam

Attempt - 1

0.

544135

566133

0.

445037

431809

18

31.

212

11%

Attempt - 2

0.

556751

565934

0.

406756

390195

26

45.

9411

04%

Attempt - 3

0.

549493

55769

0.

395206

400428

28

39.

0781

27%

Overall Average

0.

544344

547128

0.

364643

355352

33

53.

0124

97%

Testing Script

Code Block
languagepy
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])/dhis2_performances[-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'])/result7['dhis2']-1)*100)))
results7.append(result7)
print(tabulate(results7, headers='firstrow', tablefmt='pipe'))

...