Versions Compared

Key

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

...

DHIS2

FHIR

DHIS2 vs FHIR %

Average

0.323108321175

0.286697283594

813.583725%

Test detailed results

logged on Nov 29Dec 1/ 2022 UTC-7 09:0306:00

Performance Testing for finding

PSI's DHIS2 API (s)

DHIS2 Average (s)

FHIR API (s)

FHIR Average (s)

Improvement (%)

Clínica Dra. Cintya Iraheta

0.

337506

327208, 0.

286636

295008, 0.

29676

279619

0.

306967

300612

0.

322618

320108, 0.

292195

293777, 0.

276949

290582

0.

297254

301489

3

-0.

16429

29%

Hospital David King

0.

304111

303942, 0.

304274

288387, 0.

305908

297077

0.

304764

296469

0.

282915

285969, 0.

285814

278561, 0.

293968

274396

0.

287566

279642

5

6.

64327

02%

Unidad Médica San Miguel (NF047)

0.

290758

287184, 0.

292999

299348, 0.

282317

285113

0.

288691

290548

0.

298637

288675, 0.

279342

282008, 0.

290157

266365

0.

289379

279016

-0

4.

238086

13%

Ithare Medical Clinic (10358)

0.

294144

293031, 0.

291588

28064, 0.

279463

289396

0.

288398

287689

0.

287773

275697, 0.

28149

287436, 0.

288758

29041

0.

286007

284514

0

1.

829177

12%

Korakora Health Centre (13382)

0.

284701

303196, 0.

300115

304112, 0.

292818

301997

0.

292545

303102

0.

287751

28352, 0.

285688

295342, 0.

278392

291901

0.

283944

290254

2

4.

94006

43%

Nimoli Medical Services

0.

284044

28343, 0.

299954

289077, 0.

29775

29045

0.

293916

287652

0.

287685

277361, 0.

276744

284016, 0.

286844

273865

0.

283758

278414

3.

4562

32%

Adina Pharamacy - House 3, Road 1, FHA Estate, Lugbe

0.

284925

294931, 0.

289745

305446, 0.

301087

295431

0.

291919

298603

0.

297978

279472, 0.

300757

291679, 0.

281225

278167

0.

29332

283106

-0

5.

479928

47%

Ajingi Primary Health Centre (fc-00-00-0069)

0.

458838

454878, 0.

464859

479441, 0.

474938

46623

0.

466212

46685

0.

270774

294771, 0.

29056

291244, 0.

292726

283336

0.

284687

289784

38

61.

9362

1%

LOLA PMS (NG_DISC_PPMV_00019)

0.

481136

463435, 0.

460797

457732, 0.

449282

452672

0.

463738

457946

0.

271585

285396, 0.

290923

272043, 0.

286936

265224

0.

283148

274221

38

67.

9423

0%

Clinique La Sentinelle (LT335)

0.

295725

289978, 0.

301791

288041, 0.

281576

280732

0.

293031

28625

0.

294917

288432, 0.

277547

291099, 0.

265141

276994

0.

279202

285508

4

0.

7193

26%

CSI Lougguere

0.

286502

28805, 0.

298096

286309, 0.

290171

279159

0.

29159

284506

0.

295101

286494, 0.

28756

278248, 0.

28473

27263

0.

28913

279124

0

1.

843423

93%

Nkouampoer (SU11009-17)

0.

298429

294435, 0.

301234

287067, 0.

286918

300116

0.

295527

293873

0.

27295

2778, 0.

287852

273078, 0.

288115

283296

0.

282972

278058

4

5.

24823

69%

Overall Average

0.

323108

321175

0.

286697

283594

8

13.

5837

25%

Testing Script

Code Block
breakoutModewide
languagepy
## Case #3
results = [{"description": "Performance Testing for finding", "dhis2": "PSI's DHIS2 API (s)", "dhisAvg": "DHIS2 Average (s)", "fhir": "FHIR API (s)", "fhirAvg": "FHIR Average (s)", "improvement": "Improvement (%)"}]
print("Case #3 - Measuring time taken to find a specific OrgUnit / Location")
outlets = [{"id": "Fz5NHHnah7C", "name": "Clínica Dra. Cintya Iraheta"},{"id": "onUMfZs0zeh", "name": "Hospital David King"},{"id": "kJ14ifcScdC", "name": "Unidad Médica  San Miguel (NF047)"},{"id": "LhNO7Q1tgck", "name": "Ithare Medical Clinic (10358)"},{"id": "V0Wh2NxXpeP", "name": "Korakora Health Centre (13382)"},{"id": "TIqvGd9EDw4", "name": "Nimoli Medical Services"},{"id": "rLBXeooeab7", "name": "Adina Pharamacy - House 3, Road 1, FHA Estate, Lugbe"},{"id": "FQ7cbWDi2Sq", "name": "Ajingi Primary Health Centre (fc-00-00-0069)"},{"id": "iEEsjVZWZXN", "name": "LOLA PMS (NG_DISC_PPMV_00019)"},{"id": "LaosQn5Ir4Q", "name": "Clinique La Sentinelle (LT335)"},{"id": "QLUHuYeU7aT", "name": "CSI Lougguere"},{"id": "IXageW1Ti5E", "name": "Nkouampoer (SU11009-17)"}]
dhis2_averages = []
fhir_averages = []
improvements = []
for outlet in outlets:
    improvement_overall = 0
    case_result = {}
    attempts = []
    fhir_attempts = []
    for i in range (1,4):
        case_result['description'] = "{}".format(outlet['name'])
        dhis2_url = dhis2_base_url+'uid={}'.format(outlet['id'])
        result = requests.get(dhis2_url, auth=dhis2_auth)
        if result.status_code == 200:
            dhis2_performances.append(result.elapsed.total_seconds())
            attempts.append(result.elapsed.total_seconds())
        
        request_url = fhir_location_url+'identifier={}'.format(outlet['id'])
        fhirResult = requests.get(request_url, auth=fhir_auth)
        if fhirResult.status_code == 200:
            fhir_attempts.append(fhirResult.elapsed.total_seconds())
    case_result['dhis2'] = ",  ".join([str(i) for i in attempts])
    dhis2_averages.append(Average(attempts))
    fhir_averages.append(Average(fhir_attempts))
    improvements.append(((dhis2_averages[-1]/ - fhir_averages[-1] )/ dhis2_averages[-1])*100)
    case_result['dhisAvg'] = dhis2_averages[-1]
    case_result['fhir'] = ', '.join([str(i) for i in fhir_attempts])
    case_result['fhirAvg'] = fhir_averages[-1]
    case_result['improvement'] = '{}%'.format(float("{:.2f}".format(improvements[-1])))
    results.append(case_result)
    time.sleep(0.01)
case_result = {}
case_result['description'] = "Overall Average"
case_result['dhisAvg'] = Average(dhis2_averages)
case_result['fhirAvg'] = Average(fhir_averages)
case_result['improvement'] = Average(improvements'{}%'.format(float("{:.2f}".format(((case_result['dhisAvg']/case_result['fhirAvg'])-1)*100)))
results.append(case_result)
print(tabulate(results, headers='firstrow', tablefmt='pipe'))

...