Versions Compared

Key

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

...

Code Block
URL: ${fhir-server-url}/Location
Method: POST
Headers:
  Content-Type: application/json
Body:
  {
    resourceType: "Location",
	alias: [ "N007" ],
	identifier: {
	  { system: "urn:ietf:rfc:3986", value: "https://test.openlmis.org/api/programs/418bdc1d-c303-4bd0-b2d3-d8901150a983" },
	  { system: "urn:ietf:rfc:3986", value: "https://test.openlmis.org/api/facilityTypes/ac1d268b-ce10-455f-bf87-9c667da8f060" },
	  { system: "urn:ietf:rfc:3986", value: "https://test.openlmis.org/api/facilityOperators/9456c3e9-c4a6-4a28-9e08-47ceb16a4121" },
	  { system: "https://test.openlmis.org", value: ${identifier_value} }
	},
	name: "Lurio, Cuamba",
	position: {
	  longitude: 36.852509
	  latitude: -14.78975
	},
	physicalType: {
	  coding: [
	    { system: "http://hl7.org/fhir/location-physical-type", code: "si", display: "Site" }
	  ]
	},
	partOf: {
	  reference: "https://test.openlmis.org/api/Location/9b8cfb5a-217a-4261-a64f-16ca06ae79fa"
	},
	status: "active"
  }

Response times

FHIR serverSampleMemory limit

1st attempt

2nd attempt3rd attempt4th attempt5th attempt
memavgp90memavgp90memavgp90memavgp90memavgp90
Hearth1 000no limit-34-34-35-35-34
HAPI FHIR-105172-107176-106174-106176-105172
Hearth10 000no limit














HAPI FHIR














Hearth10 0001024MB














HAPI FHIR














Hearth20 000no limit














HAPI FHIR














Hearth20 0001024MB














HAPI FHIR














Update the location

Note: When an X test is being executed, there are X - 1 resources in the FHIR server. For the first resource update, the FHIR server will contain a single resource.

...

Code Block
URL: ${fhir-server-url}/Location
Method: PUT
Headers:
  Content-Type: application/json
Body:
  {
    resourceType: "Location",
	alias: [ "N007" ],
	identifier: {
	  { system: "urn:ietf:rfc:3986", value: "https://test.openlmis.org/api/programs/418bdc1d-c303-4bd0-b2d3-d8901150a983" },
	  { system: "urn:ietf:rfc:3986", value: "https://test.openlmis.org/api/facilityTypes/ac1d268b-ce10-455f-bf87-9c667da8f060" },
	  { system: "urn:ietf:rfc:3986", value: "https://test.openlmis.org/api/facilityOperators/9456c3e9-c4a6-4a28-9e08-47ceb16a4121" },
	  { system: "https://test.openlmis.org", value: ${identifier_value} }
	},
	name: "Lurio, Cuamba (Updated)",
	position: {
	  longitude: 36.852509
	  latitude: -14.78975
	},
	physicalType: {
	  coding: [
	    { system: "http://hl7.org/fhir/location-physical-type", code: "si", display: "Site" }
	  ]
	},
	partOf: {
	  reference: "https://test.openlmis.org/api/Location/9b8cfb5a-217a-4261-a64f-16ca06ae79fa"
	},
	status: "active"
  }

Response times

FHIR serverSampleMemory limit1st attempt2nd attempt3rd attempt4th attempt5th attempt
memavgp90memavgp90memavgp90memavgp90memavgp90
Hearth1 000no limit-56-57-57-57-45
HAPI FHIR-115183-119187-114182-114183-115184
Hearth10 000no limit














HAPI FHIR














Hearth10 0001024MB














HAPI FHIR














Hearth20 000no limit














HAPI FHIR














Hearth20 0001024MB














HAPI FHIR














Get a location by an id

Note: When an X test is being executed, there are X - 1 resources in the FHIR server. For the first resource search, the FHIR server will contain only one resource.

...

Code Block
URL: ${fhir-server-url}/Location/${location_id}
Method: GET
Headers:
  Accept: application/json

Response times

FHIR serverSampleMemory limit1st attempt2nd attempt3rd attempt4th attempt5th attempt
memavgp90memavgp90memavgp90memavgp90memavgp90
Hearth1 000no limit-34-34-34-34-23
HAPI FHIR-59-610-59-59-59
Hearth10 000no limit














HAPI FHIR














Hearth10 0001024MB














HAPI FHIR














Hearth20 000no limit














HAPI FHIR














Hearth20 0001024MB














HAPI FHIR














Search single location by an identifier

...

Code Block
URL: ${fhir-server-url}/Location?identifier=https://test.openlmis.org|${identifier_value}
Method: GET

Response times

FHIR serverSampleMemory limit1st attempt2th attempt3th attempt4th attempt5th attempt
memavgp90memavgp90memavgp90memavgp90memavgp90
Hearth1 000no limit-46-46-57-46-45
HAPI FHIR-1624-1726-1725-1725-1725
Hearth10 000no limit














HAPI FHIR














Hearth10 0001024MB














HAPI FHIR














Hearth20 000no limit














HAPI FHIR














Hearth20 0001024MB














HAPI FHIR














Search locations

Note: When an X test is being executed, there are 1000 resources in the FHIR server. The search endpoint returns only 10 resources.

...

Code Block
URL: ${fhir-server-url}/Location
Method: GET

Response times

FHIR serverSampleMemory limit1st attempt2th attempt3th attempt4th attempt5th attempt
memavgp90memavgp90memavgp90memavgp90memavgp90
Hearth1 000no limit-34-35-34-35-34
HAPI FHIR-1925-1720-2028-2027-2229
Hearth10 000no limit














HAPI FHIR














Hearth10 0001024MB














HAPI FHIR














Hearth20 000no limit














HAPI FHIR














Hearth20 0001024MB














HAPI FHIR














Search locations by name

Note: When an X test is being executed, there are 1000 resources in the FHIR server. The search endpoint returns only 10 resources.

...

Code Block
URL: ${fhir-server-url}/Location?name:contains=Lurio
Method: GET

Response times

FHIR serverSampleMemory limit1st attempt

2th attempt

3th attempt

4th attempt

5th attempt

memavgp90memavgp90memavgp90memavgp90memavgp90
Hearth1 000no limit---------------
HAPI FHIR---------------
Hearth10 000no limit














HAPI FHIR














Hearth10 0001024MB














HAPI FHIR














Hearth20 000no limit














HAPI FHIR














Hearth20 0001024MB














HAPI FHIR














Search locations by partOf

...

Code Block
URL: ${fhir-server-url}/Location?partof=https://test.openlmis.org/api/Location/9b8cfb5a-217a-4261-a64f-16ca06ae79fa
Method: GET

Response times

FHIR serverSampleMemory limit1st attempt

2th attempt

3th attempt

4th attempt

5th attempt

memavgp90memavgp90memavgp90memavgp90memavgp90
Hearth1 000no limit---------------
HAPI FHIR---------------
Hearth10 000no limit














HAPI FHIR














Hearth10 0001024MB














HAPI FHIR














Hearth20 000no limit














HAPI FHIR














Hearth20 0001024MB














HAPI FHIR














Search locations by status

...

Code Block
URL: ${fhir-server-url}/Location?status:exact=active
Method: GET

Response times

FHIR serverSampleMemory limit1st attempt

2th attempt

3th attempt

4th attempt

5th attempt

memavgp90memavgp90memavgp90memavgp90memavgp90
Hearth1 000no limit---------------
HAPI FHIR---------------
Hearth10 000no limit














HAPI FHIR














Hearth10 0001024MB














HAPI FHIR














Hearth20 000no limit














HAPI FHIR














Hearth20 0001024MB














HAPI FHIR














Conclusions

In all attempts, the Hearth FHIR server has better performance than the HAPI FHIR server. Creation and update actions take a lot of more time in the HAPI FHIR than in the Hearth. The search actions have better results but still, Hearth server is faster about 4 times. I noticed that the HAPI FHIR server caches results (not know for how long) for search requests:

...