Versions Compared

Key

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

...

DHIS2

FHIR

DHIS2 vs FHIR %

Average

0.551962544344

0.358791364643

15633.4780124

Test detailed results

logged on Nov 2229/ 2022 UTC-7 2109:5126:00

Performance Testing for Outlet Type

Attempt

DHIS2 API (s)

FHIR API (s)

Improvement (%)

Dominican Republic

Attempt - 1

0.

593318

567389

0.

338067

334102

175

41.

503

1159

Attempt - 2

0.

541574

522738

0.

289128

288675

187

44.

313

7764

Attempt - 3

0.

53424

538892

0.

280602

29013

190

46.

391

1618

Honduras

Attempt - 1

0.

545529

551937

0.

372258

375277

146

32.

546

0073

Attempt - 2

0.

54711

539953

0.

364207

367432

150

31.

22

9511

Attempt - 3

0.

539345

527808

0.

358541

37917

150

28.

428

1614

Vietnam

Attempt - 1

0.

558541

544135

0.

418999

445037

133

18.

304

212

Attempt - 2

0.

550937

556751

0.

39442

406756

139

26.

683

9411

Attempt - 3

0.

55706

549493

0.

4129

395206

134

28.

914

0781

Overall Average

0.

551962

544344

0.

358791

364643

156

33.

478

0124

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