Versions Compared

Key

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

...

DHIS2

FHIR

DHIS2 vs FHIR %

Average

0.559433554281

0.559633555023

-50.1475113%

Test detailed results

logged on Nov 29Dec 1/ 2022 UTC-7 08:3540:00

Performance Testing for

Attempt

DHIS2 API

FHIR API

FHIR API (with HealthcareServices),

Improvement %

El Salvador

Attempt - 1

0.

519845

566667

0.

49418

488375

0.

562221

487989

4

16.

93705

03%

Attempt - 2

0.

57532

532607

0.

424411

437886

0.

454275

548295

26

21.

2304

63%

Attempt - 3

0.

54541

532142

0.

4306

452103

0.

445373

463129

21

17.

0502

7%

Kenya

Attempt - 1

0.

649501

657443

0.

616995

604362

0.

613571

625961

5

8.

00477

78%

Attempt - 2

0.

681508

655574

0.

559262

578361

0.

577607

574557

17

13.

9376

35%

Attempt - 3

0.

663324

659164

0.

57675

573111

0.

61023

663475

13

15.

0515

02%

Nigeria

Attempt - 1

0.

52902

526847

0.

599715

570136

0.

629629

651838

-

13

7.

3634

59%

Attempt - 2

0.

536094

528978

0.

579989

588868

0.

68599

620271

-

8

10.

18793

17%

Attempt - 3

0.

588082

536548

0.

579535

568277

0.

60863

70342

1

-5.

45337

58%

Cameroon

Attempt - 1

0.

371575

372636

0.

63747

587497

0.

606542

590178

-

71

36.

5589

57%

Attempt - 2

0.

371396

371032

0.

566286

584348

0.

588483

595724

-

52

36.

475

5%

Attempt - 3

0.

363826

371502

0.

571734

558964

0.

582228

585595

-

57

33.

1449

54%

Nepal

Attempt - 1

0.

675976

662525

0.

604182

612458

0.

593038

682753

10

8.

6208

17%

Attempt - 2

0.

651016

670834

0.

590685

56743

0.

672721

571592

9

18.

26721

22%

Attempt - 3

0.

669601

669719

0.

562703

553174

0.

57227

584597

15

21.

9644

07%

Overall Average

0.

559433

554281

0.

559633

555023

0.

586854

596625

-

5.14751

0.13%

Testing Script

Code Block
breakoutModewide
languagepy
##Case 1
case_1_results = [{"description": "Performance Testing for", "attempt": "Attempt", "dhis2": "DHIS2 API", "fhir": "FHIR API", "fhir_with_healthcareServices": "FHIR API (with HealthcareServices),", "improvement":"Improvement %"}]
print("Case #1 - Getting 500 orgUnits/Location in the country (by ISO)")
improvements = []
dhis2_performances = []
fhir_hsc_performances = []
fhir_performances = []
for country in countries:
    for i in range(1,4):
        case_1_result = {}
        if i == 1:
            case_1_result['description'] = "{}".format(country['name'])
        case_1_result['attempt'] = "Attempt - {}".format(i)
        dhis2_url = dhis2_base_url+'iso2={}&number=500'.format(country['code'])
        result = requests.get(dhis2_url, auth=dhis2_auth)
        if result.status_code == 200:
            dhis2_performances.append(result.elapsed.total_seconds())
            case_1_result['dhis2'] = dhis2_performances[-1]

        request_url = fhir_location_url+'address-country={}&_count=500'.format(country['name'])
        fhirResult = requests.get(request_url, auth=fhir_auth)
        if fhirResult.status_code == 200:
            fhir_performances.append(fhirResult.elapsed.total_seconds())
            case_1_result['fhir'] = fhir_performances[-1]
        
        request_healthcare_url = fhir_location_url+'address-country={}&_count=500&_revinclude=HealthcareService:location'.format(country['name'])
        fhirHealthcareServicesResult = requests.get(request_healthcare_url, auth=fhir_auth)
        if fhirHealthcareServicesResult.status_code == 200:
            fhir_hsc_performances.append(fhirHealthcareServicesResult.elapsed.total_seconds())
            case_1_result['fhir_with_healthcareServices'] = fhir_hsc_performances[-1]
        
        improvements.append(((case_1_result['dhis2'] 

...

/ case_1_result['fhir']) 

...

- 

...

1

...

)*100)
        case_1_result['improvement'] = '{}%'.format(float("{:.2f}".format(improvements[-1])))
        case_1_results.append(case_1_result)
        time.sleep(0.01)
case_1_result = {}
case_1_result['description'] = "Overall Average"
case_1_result['dhis2'] = 

...

np.average(dhis2_performances)
case_1_result['fhir'] = 

...

np.average(fhir_performances)
case_1_result['fhir_with_healthcareServices'] = 

...

np.average(fhir_hsc_performances)
case_1_result['improvement'] = 

...

'{}%'.format(float("{:.2f}".format(((case_1_result['dhis2']/case_1_result['fhir'])-1)*100)))
case_1_results.append(case_1_result)
print(tabulate(case_1_results, headers='firstrow', tablefmt='pipe'))