Versions Compared

Key

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

...

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.

36212

41727

141

0.

593179

65739

500

56

115.

4517

59%

Attempt 2

1.

4038

39867

141

0.

569006

574834

500

59

143.

4668

32%

Attempt 3

1.

4126

382

141

0.

567176

568845

500

59

142.

8487

95%

Kenya

Attempt 1

1.

51748

43245

500

0.

582688

598346

500

61

139.

6017

4%

Attempt 2

1.

42406

43526

500

0.

575231

581445

500

59

146.

6061

84%

Attempt 3

1.

41624

49501

500

0.

559239

569503

500

60

162.

5125

51%

Nigeria

Attempt 1

1.

5021

51636

500

0.

59612

582592

500

60

160.

3143

28%

Attempt 2

1.

48585

48614

500

0.

56827

613181

500

61

142.

7545

37%

Attempt 3

1.

50549

63908

500

0.

569342

567279

500

62

188.

1824

94%

Cameroon

Attempt 1

1.

46494

69394

500

0.

58451

591673

500

60

186.

1

3%

Attempt 2

1.

51499

47116

500

0.

608725

563599

500

59

161.

8198

03%

Attempt 3

1.

50646

49798

500

0.

558488

566068

500

62

164.

9271

63%

Nepal

Attempt 1

1.

11289

11843

12

0.

579574

59532

500

47

87.

9217

87%

Attempt 2

1.

41752

10475

12

0.

573164

567694

500

59

94.

5659

6%

Attempt 3

1.

19342

10523

12

0.

591184

558964

500

50

97.

4632

73%

Overall Average

1.

416

41292

0.

578393

583782

58

142.

8358

03%

Testing Script

Code Block
breakoutModewide
languagepy
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'))

...