Versions Compared

Key

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

...

DHIS2

FHIR

DHIS2 vs FHIR %

Average

0.551962547128

0.358791355352

15653.47897%

Test detailed results

logged on Nov 22Dec 1/ 2022 UTC-7 2110:5100:00

Performance Testing for Outlet Type

Attempt

DHIS2 API (s)

FHIR API (s)

Improvement (%)

Dominican Republic

Attempt - 1

0.

593318

571623

0.

338067

332961

175

71.

503

68%

Attempt - 2

0.

541574

522887

0.

289128

288102

187

81.

313

49%

Attempt - 3

0.

53424

534688

0.

280602

274596

190

94.

391

72%

Honduras

Attempt - 1

0.

545529

53421

0.

372258

366531

146

45.

546

75%

Attempt - 2

0.

54711

540515

0.

364207

350941

150

54.

22

02%

Attempt - 3

0.

539345

530475

0.

358541

362607

150

46.

428

29%

Vietnam

Attempt - 1

0.

558541

566133

0.

418999

431809

133

31.

304

11%

Attempt - 2

0.

550937

565934

0.

39442

390195

139

45.

683

04%

Attempt - 3

0.

55706

55769

0.

4129

400428

134

39.

914

27%

Overall Average

0.

551962

547128

0.

358791

355352

156

53.

478

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])-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'] = np.average(improvements'{}%'.format(float("{:.2f}".format(((result7['dhis2']/result7['fhir'])-1)*100)))
results7.append(result7)
print(tabulate(results7, headers='firstrow', tablefmt='pipe'))