Versions Compared

Key

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

...

DHIS2

FHIR

DHIS2 vs FHIR %

Average

0.55943355735

0.559633556148

-50.14751215675

Test detailed results

logged on Nov 29/ 2022 UTC-7 0809:3520:00

Performance Testing for

Attempt

DHIS2 API

FHIR API

FHIR API (with HealthcareServices),

Improvement %

El Salvador

Attempt - 1

0.

519845

584538

0.

49418

556832

0.

562221

51522

4.

93705

73981

Attempt - 2

0.

57532

540187

0.

424411

452148

0.

454275

490487

26

16.

2304

2979

Attempt - 3

0.

54541

527518

0.

4306

448206

0.

445373

464108

21

15.

0502

0349

Kenya

Attempt - 1

0.

649501

670854

0.

616995

580913

0.

613571

611169

5

13.

00477

4069

Attempt - 2

0.

681508

650981

0.

559262

573247

0.

577607

592193

17

11.

9376

9411

Attempt - 3

0.

663324

666113

0.

57675

553176

0.

61023

626906

13

16.

0515

9546

Nigeria

Attempt - 1

0.

52902

542913

0.

599715

581144

0.

629629

641549

-

13

7.

3634

04183

Attempt - 2

0.

536094

539101

0.

579989

570632

0.

68599

622898

-

8

5.

18793

84881

Attempt - 3

0.

588082

529134

0.

579535

551834

0.

60863

605798

1

-4.

45337

29003

Cameroon

Attempt - 1

0.

371575

356464

0.

63747

576357

0.

606542

588069

-

71

61.

5589

6873

Attempt - 2

0.

371396

362752

0.

566286

569168

0.

588483

562994

-

52

56.

475

9028

Attempt - 3

0.

363826

376103

0.

571734

571142

0.

582228

568529

-

57

51.

1449

8579

Nepal

Attempt - 1

0.

675976

66836

0.

604182

582882

0.

593038

614518

10

12.

6208

7892

Attempt - 2

0.

651016

661991

0.

590685

603611

0.

672721

579578

9

8.

26721

81885

Attempt - 3

0.

669601

683248

0.

562703

570934

0.

57227

588029

15

16.

9644

4382

Overall Average

0.

559433

55735

0.

559633

556148

0.

586854

578136

-5.14751

0.215675

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']) / case_1_result['dhis2'])*100)
        case_1_result['improvement'] = 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'] = 

...

((case_1_result['dhis2'] - case_1_result['fhir'])/case_1_result['dhis2'])*100
case_1_results.append(case_1_result)
print(tabulate(case_1_results, headers='firstrow', tablefmt='pipe'))