Versions Compared

Key

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

...

DHIS2

FHIR

DHIS2 vs FHIR %

Average

0.552675 554281

0.555544555023

99-0.943713%

Test detailed results

logged on Nov 22Dec 1/ 2022 UTC-7 2008:5040:00

Performance Testing for

Attempt

DHIS2 API

FHIR API

FHIR API (with HealthcareServices),

Improvement

(

%

)

El Salvador

Attempt - 1

0.

519389

566667

0.

440304

488375

0.

469497

487989

117

16.

961

03%

Attempt - 2

0.

529713

532607

0.

477896

437886

0.

511702

548295

110

21.

843

63%

Attempt - 3

0.

531602

532142

0.

471425

452103

0.

494385

463129

112

17.

765

Average

0.526901

0.463208

0.491861

113.856

7%

Kenya

Attempt - 1

0.

671807

657443

0.

54995

604362

0.

676148

625961

122

8.

158

78%

Attempt - 2

0.

659882

655574

0.

565902

578361

0.

646831

574557

116

13.

607

35%

Attempt - 3

0.

675049

659164

0.

582467

573111

0.

673331

663475

115.895

Average

0.668913

0.566106

0.665437

118.22

15.02%

Nigeria

Attempt - 1

0.

543742

526847

0.

573266

570136

0.

683242

651838

94

-7.

8499

59%

Attempt - 2

0.

52637

528978

0.

569232

588868

0.

745541

620271

92

-10.

4702

17%

Attempt - 3

0.

541472

536548

0.

608343

568277

0.

790074

70342

89.0077

Average

0.537195

0.583614

0.739619

92.1092

-5.58%

Cameroon

Attempt - 1

0.

376211

372636

0.

561858

587497

0.

652159

590178

66

-36.

9584

57%

Attempt - 2

0.

37443

371032

0.

599746

584348

0.

79305

595724

62

-36.

4314

5%

Attempt - 3

0.

360255

371502

0.

587638

558964

0.

671873

585595

61.3056

Average

0.370299

0.583081

0.705694

63.5651

-33.54%

Nepal

Attempt - 1

0.

660437

662525

0.

549037

612458

0.

654779

682753

120

8.

29

17%

Attempt - 2

0.

655759

670834

0.

559969

56743

0.

826436

571592

117

18.

106

22%

Attempt - 3

0.

667043

669719

0.

595319

553174

0.

671326

584597

112

21.

048

07%

Overall Average

0.

66108

554281

0.

568108

555023

0.

717514

116.481

Overall Average

0.552877

0.552823

0.664025

100.846

596625

-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)")
dhis2_overall_averageimprovements = 0[]
fhirdhis2_overall_averageperformances = 0[]
fhir_hcshsc_overall_averageperformances = 0[]
improvementfhir_overallperformances = 0[]
for country in countries:
    dhis2_section_sum = 0
    fhir_section_sum = 0
    fhir_hcs_section_sum = 0
    improvement_section_sum = 0
    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'] = result.elapsed.total_seconds()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'] = fhirResult.elapsed.total_seconds()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:
            case_1_result['fhir_with_healthcareServices'] = hsc_performances.append(fhirHealthcareServicesResult.elapsed.total_seconds())
                 case_1_result['improvementfhir_with_healthcareServices'] = (casefhir_1hsc_result['dhis2'] / case_1_result['fhir'])*100performances[-1]
        case_1_results.append(case_1_result)
         dhis2_section_sum += improvements.append(((case_1_result['dhis2']         fhir_section_sum +=/ case_1_result['fhir']) - 1)*100)
      fhir_hcs_section_sum += case_1_result['fhir_with_healthcareServices']'improvement'] = '{}%'.format(float("{:.2f}".format(improvements[-1])))
        improvementcase_section_sum += 1_results.append(case_1_result['improvement'])
        time.sleep(1)
   0.01)
case_1_result = {}
    case_1_result['attemptdescription'] = "Overall Average"
   
case_1_result['dhis2'] = np.average(dhis2_section_sum / 3
   performances)
case_1_result['fhir'] = np.average(fhir_section_sum / 3
    performances)
case_1_result['fhir_with_healthcareServices'] = np.average(fhir_hcs_section_sum / 3
    hsc_performances)
case_1_result['improvement'] = improvement_section_sum / 3
    case_1_results.append(case_1_result)
    dhis2_overall_average += dhis2_section_sum / 3
    fhir_overall_average += fhir_section_sum / 3
    fhir_hcs_overall_average += fhir_hcs_section_sum / 3
    improvement_overall += improvement_section_sum / 3
case_1_result = {}
case_1_result['description'] = "Overall Average"
'{}%'.format(float("{:.2f}".format(((case_1_result['dhis2'] = dhis2_overall_average / nos_countries
case_1_result['fhir'] = fhir_overall_average / nos_countries
case_1_result['fhir_with_healthcareServices'] = fhir_hcs_overall_average / nos_countries
case_1_result['improvement'] = improvement_overall / nos_countries
)-1)*100)))
case_1_results.append(case_1_result)
print(tabulate(case_1_results, headers='firstrow', tablefmt='fancy_gridpipe'))