223 lines
10 KiB
ReStructuredText
223 lines
10 KiB
ReStructuredText
### Create Single Patient
|
|
# https://hapifhir.io/hapi-fhir/docs/server_plain/rest_operations.html#type_create
|
|
POST http://{{host}}/fhir/Patient
|
|
Content-Type: application/json
|
|
|
|
< smoketestfiles/patient_create.json
|
|
|
|
> {%
|
|
client.test("Patient created successfully", function() {
|
|
client.assert(response.status === 201, "Response status is not 201");
|
|
});
|
|
client.test("Response content-type is json", function() {
|
|
const type = response.contentType.mimeType;
|
|
client.assert(type === "application/fhir+json", "Expected 'application/fhir+json' but received '" + type + "'");
|
|
});
|
|
client.test("Response resourceType is Patient", function() {
|
|
const resourceType = response.body.resourceType;
|
|
client.assert(resourceType === "Patient", "Expected 'Patient' but received '" + resourceType + "'");
|
|
});
|
|
client.global.set("single_patient_id", response.body.id);
|
|
client.global.set("single_patient_family_name", response.body.name[0].family);
|
|
%}
|
|
|
|
### Search Single Patient
|
|
# https://hapifhir.io/hapi-fhir/docs/server_plain/rest_operations.html#type_search
|
|
GET http://{{host}}/fhir/Patient?name={{single_patient_family_name}}&_id={{single_patient_id}}
|
|
|
|
> {%
|
|
client.test("Patient search successful", function() {
|
|
client.assert(response.status === 200, "Response status is not 200");
|
|
});
|
|
client.test("Response content-type is json", function() {
|
|
const type = response.contentType.mimeType;
|
|
client.assert(type === "application/fhir+json", "Expected 'application/fhir+json' but received '" + type + "'");
|
|
});
|
|
client.test("Response resourceType is Bundle", function() {
|
|
const resourceType = response.body.resourceType;
|
|
client.assert(resourceType === "Bundle", "Expected 'Bundle' but received '" + resourceType + "'");
|
|
});
|
|
client.test("Total patients found is 1", function() {
|
|
const totalFound = response.body.total;
|
|
client.assert(totalFound === 1, "Expected '1' match but found '" + totalFound + "'");
|
|
});
|
|
%}
|
|
|
|
### Delete Patient
|
|
# https://hapifhir.io/hapi-fhir/docs/server_plain/rest_operations.html#instance_delete
|
|
DELETE http://{{host}}/fhir/Patient/{{single_patient_id}}
|
|
|
|
> {%
|
|
client.test("Patient deleted successfully", function() {
|
|
client.assert(response.status === 200, "Response status is not 200");
|
|
});
|
|
client.test("Response content-type is json", function() {
|
|
const type = response.contentType.mimeType;
|
|
client.assert(type === "application/fhir+json", "Expected 'application/fhir+json' but received '" + type + "'");
|
|
});
|
|
client.test("Response resourceType is OperationOutcome", function() {
|
|
const resourceType = response.body.resourceType;
|
|
client.assert(resourceType === "OperationOutcome", "Expected 'OperationOutcome' but received '" + resourceType + "'");
|
|
});
|
|
%}
|
|
|
|
### Batch Patient Create
|
|
# https://hapifhir.io/hapi-fhir/docs/server_plain/rest_operations.html#system_transaction
|
|
POST http://{{host}}/fhir/
|
|
Content-Type: application/json
|
|
|
|
< smoketestfiles/patient_batch_create.json
|
|
|
|
> {%
|
|
client.test("Bundle transaction completed successfully", function() {
|
|
client.assert(response.status === 200, "Response status is not 200");
|
|
});
|
|
client.test("Response content-type is json", function() {
|
|
const type = response.contentType.mimeType;
|
|
client.assert(type === "application/fhir+json", "Expected 'application/fhir+json' but received '" + type + "'");
|
|
});
|
|
client.test("Response resourceType is Bundle", function() {
|
|
const resourceType = response.body.resourceType;
|
|
client.assert(resourceType === "Bundle", "Expected 'Bundle' but received '" + resourceType + "'");
|
|
});
|
|
client.test("All patient additions successful", function() {
|
|
for (var index = 0; index < response.body.entry.length; index++) {
|
|
client.assert(response.body.entry[index].response.status === "201 Created", "Expected '201 Created' for patient index " + index + " but received '" + response.body.entry[index].response.status + "'");
|
|
}
|
|
});
|
|
const batch_patient_location = response.body.entry[0].response.location;
|
|
const indexOfHistory = batch_patient_location.lastIndexOf("/_history");
|
|
trimmed_location = batch_patient_location.substring(0, indexOfHistory);
|
|
trimmed_location = trimmed_location.replace("Patient/", "")
|
|
client.global.set("batch_patient_id", trimmed_location);
|
|
%}
|
|
|
|
### Update - Instance
|
|
# https://hapifhir.io/hapi-fhir/docs/server_plain/rest_operations.html#instance_update
|
|
PUT http://{{host}}/fhir/Patient/{{batch_patient_id}}
|
|
Content-Type: application/json
|
|
|
|
< smoketestfiles/patient_update.json
|
|
|
|
> {%
|
|
client.test("Bundle transaction completed successfully", function() {
|
|
client.assert(response.status === 200, "Response status is not 200");
|
|
});
|
|
client.test("Response content-type is json", function() {
|
|
const type = response.contentType.mimeType;
|
|
client.assert(type === "application/fhir+json", "Expected 'application/fhir+json' but received '" + type + "'");
|
|
});
|
|
client.test("Response resourceType is Patient", function() {
|
|
const resourceType = response.body.resourceType;
|
|
client.assert(resourceType === "Patient", "Expected 'Patient' but received '" + resourceType + "'");
|
|
});
|
|
client.test("Test last name updated", function() {
|
|
const familyName = response.body.name[0].family;
|
|
client.assert(familyName === "Iantoryes", "Expected updated family name 'Iantoryes' but received '" + familyName + "'");
|
|
});
|
|
client.test("Test version number updated", function() {
|
|
const versionId = response.body.meta.versionId;
|
|
client.assert(versionId === "2", "Expected updated versionId name '2' but received '" + versionId + "'");
|
|
});
|
|
%}
|
|
|
|
### Patch - Instance
|
|
# https://hapifhir.io/hapi-fhir/docs/server_plain/rest_operations.html#instance-level-patch
|
|
PATCH http://{{host}}/fhir/Patient/{{batch_patient_id}}
|
|
Content-Type: application/json-patch+json
|
|
|
|
< smoketestfiles/patient_patch.json
|
|
|
|
> {%
|
|
client.test("Patch operation completed successfully", function() {
|
|
client.assert(response.status === 200, "Response status is not 200");
|
|
});
|
|
client.test("Response content-type is json", function() {
|
|
const type = response.contentType.mimeType;
|
|
client.assert(type === "application/fhir+json", "Expected 'application/fhir+json' but received '" + type + "'");
|
|
});
|
|
client.test("Response resourceType is Patient", function() {
|
|
const resourceType = response.body.resourceType;
|
|
client.assert(resourceType === "Patient", "Expected 'Patient' but received '" + resourceType + "'");
|
|
});
|
|
client.test("Test active field patched", function() {
|
|
const active = response.body.active;
|
|
client.assert(active === false, "Expected updated active 'false' but received '" + active + "'");
|
|
});
|
|
%}
|
|
|
|
### History - Server/Type/Instance
|
|
# https://hapifhir.io/hapi-fhir/docs/server_plain/rest_operations.html#history
|
|
GET http://{{host}}/fhir/Patient/{{batch_patient_id}}/_history
|
|
|
|
> {%
|
|
client.test("History completed successfully", function() {
|
|
client.assert(response.status === 200, "Response status is not 200");
|
|
});
|
|
client.test("Response content-type is json", function() {
|
|
const type = response.contentType.mimeType;
|
|
client.assert(type === "application/fhir+json", "Expected 'application/fhir+json' but received '" + type + "'");
|
|
});
|
|
client.test("Response resourceType is Bundle", function() {
|
|
const resourceType = response.body.resourceType;
|
|
client.assert(resourceType === "Bundle", "Expected 'Bundle' but received '" + resourceType + "'");
|
|
});
|
|
client.test("Test receive history type", function() {
|
|
const type = response.body.type;
|
|
client.assert(type === "history", "Expected type 'history' but received '" + type + "'");
|
|
});
|
|
%}
|
|
|
|
### Capability Statement
|
|
# https://hapifhir.io/hapi-fhir/docs/server_plain/rest_operations.html#system_capabilities
|
|
GET http://{{host}}/fhir/metadata
|
|
|
|
> {%
|
|
client.test("CapabilityStatement fetched successfully", function() {
|
|
client.assert(response.status === 200, "Response status is not 200");
|
|
});
|
|
client.test("Response content-type is json", function() {
|
|
const type = response.contentType.mimeType;
|
|
client.assert(type === "application/fhir+json", "Expected 'application/fhir+json' but received '" + type + "'");
|
|
});
|
|
client.test("Response resourceType is CapabilityStatement", function() {
|
|
const resourceType = response.body.resourceType;
|
|
client.assert(resourceType === "CapabilityStatement", "Expected 'CapabilityStatement' but received '" + resourceType + "'");
|
|
});
|
|
%}
|
|
|
|
### Extended Operations - everything
|
|
# https://hapifhir.io/hapi-fhir/docs/server_plain/rest_operations_operations.html
|
|
GET http://{{host}}/fhir/Patient/{{batch_patient_id}}/$everything
|
|
|
|
> {%
|
|
client.test("$everything operation successful", function() {
|
|
client.assert(response.status === 200, "Response status is not 200");
|
|
});
|
|
client.test("Response content-type is json", function() {
|
|
const type = response.contentType.mimeType;
|
|
client.assert(type === "application/fhir+json", "Expected 'application/fhir+json' but received '" + type + "'");
|
|
});
|
|
client.test("Response resourceType is Bundle", function() {
|
|
const resourceType = response.body.resourceType;
|
|
client.assert(resourceType === "Bundle", "Expected 'Bundle' but received '" + resourceType + "'");
|
|
});
|
|
%}
|
|
|
|
### Extended Operations - validate
|
|
# https://hapifhir.io/hapi-fhir/docs/server_plain/rest_operations_operations.html
|
|
POST http://{{host}}/fhir/Patient/{{batch_patient_id}}/$validate
|
|
|
|
> {%
|
|
client.test("$validate operation successful", function() {
|
|
client.assert(response.status === 200, "Response status is not 200");
|
|
});
|
|
client.test("Response content-type is json", function() {
|
|
const type = response.contentType.mimeType;
|
|
client.assert(type === "application/fhir+json", "Expected 'application/fhir+json' but received '" + type + "'");
|
|
});
|
|
client.test("Response resourceType is OperationOutcome", function() {
|
|
const resourceType = response.body.resourceType;
|
|
client.assert(resourceType === "OperationOutcome", "Expected 'OperationOutcome' but received '" + resourceType + "'");
|
|
});
|
|
%} |