Versions Compared

Key

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

...

DHIS2

FHIR

DHIS2 vs FHIR %

Average

1.4446541292

0.579129583782

249142.54603%

Test detailed results

logged on Nov 22Dec 1/ 2022 UTC-7 2109:2304:00

Performance Testing for

Attempt

DHIS2 API

DHIS2 Size

FHIR API

FHIR Size

Improvement

(

%

)

El Salvador

Attempt 1

1.

40366

41727

141

0.

595705

65739

500

235

115.

63

59%

Attempt 2

1.

36264

39867

141

0.

548285

574834

500

248

143.

527

32%

Attempt 3

1.

38555

382

141

0.

58621

568845

500

236

142.

356

95%

Kenya

Attempt 1

1.

45908

43245

500

0.

592059

598346

500

246

139.

441

4%

Attempt 2

1.

42916

43526

500

0.

571586

581445

500

250

146.

034

84%

Attempt 3

1.

42113

49501

500

0.

602623

569503

500

235

162.

824

51%

Nigeria

Attempt 1

1.

47467

51636

500

0.

596982

582592

500

247

160.

022

28%

Attempt 2

1.

51453

48614

500

0.

564565

613181

500

268

142.

266

37%

Attempt 3

1.

50846

63908

500

0.

564294

567279

500

267

188.

318

94%

Cameroon

Attempt 1

1.

50968

69394

500

0.

580445

591673

500

260

186.

091

3%

Attempt 2

1.

66286

47116

500

0.

563667

563599

500

295

161.

008

03%

Attempt 3

1.

72107

49798

500

0.

591113

566068

500

291

164.

158

63%

Nepal

Attempt 1

1.

34875

11843

12

0.

600613

59532

500

224

87.

562

87%

Attempt 2

1.

0993

10475

12

0.

558992

567694

500

196

94.

658

6%

Attempt 3

1.

36921

10523

12

0.

569797

558964

500

240

97.

298

73%

Overall Average

1.

44465

41292

0.

579129

583782

249

142.

546

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((dhis2(case_performances[-1result['dhis2']/fhircase_performancesresult['fhir'])-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='htmlpipe'))