FHIR 反应工具
处理回复信头、内容和状态类型的工具
安装
yarn add @asymmetrik/fhir-response-util
使用量
反应效用暴露出下列方法,可用于不同的情景和不同类型的反应。 它们都对所收到的论点作出某些假设,这些论点载于下文 参数 节.
这是设计用于 节点-fhir-服务器核心 和类似的FHIR服务器. 每种方法的描述都有一些伪码,可以给出这个方法可能如何操作的概念. 如果您在节点-fhir-server-core读取了资源控制器的源代码,您可以看到我们内部是如何使用这个的.
读取
返回资源库时使用
这将在发送json返回客户端的同时设置正确的Content-Type和状态代码.
const handler = require('@asymmetrik/fhir-response-util');
// Some controller
function getPatientsController(req, res, next) {
// The user may have some service to fetch results
service
.getPatients(req)
.then((bundle) => {
// Assuming bundle contains a bunch of patients
handler.read(req, res, bundle);
})
.catch((err) => {
next(err);
});
}
读取一个
用于返回任何类型的单一资源.
这将在发送json返回客户端的同时设置正确的Content-Type和状态代码.
const handler = require('@asymmetrik/fhir-response-util');
// Some controller
function getPatientController(req, res, next) {
// The user may have some service to fetch results
service
.getPatient(req)
.then((patient) => {
handler.readOne(req, res, patient);
})
.catch((err) => {
next(err);
});
}
创建
用于创建任何类型的单一资源 .
这将设置正确的内容-定位、位置和ETag标题 。 以及设定正确的状态代码.
const handler = require('@asymmetrik/fhir-response-util');
// Some controller
function createPatientController(req, res, next) {
// The user may have some service to fetch results
service
.create(req)
.then((patient) => {
let json = { id: patient.id, resource_version: patient.meta.versionId };
let options = { type: 'Patient' };
handler.create(req, res, json, options);
})
.catch((err) => {
next(err);
});
}
更新
用于更新任何类型的单一资源
这将设置正确的内容定位、 最后修改、 位置和 ETag 标题 。 以及设置正确的内容-类型和状态代码.
const handler = require('@asymmetrik/fhir-response-util');
// Some controller
function updatePatientController(req, res, next) {
// The user may have some service to fetch results
service
.update(req)
.then((patient) => {
let json = { id: patient.id, resource_version: patient.meta.versionId, created: false };
let options = { type: 'Patient' };
handler.update(req, res, json, options);
})
.catch((err) => {
next(err);
});
}
删除
删除任何类型的单一资源时使用
这将设置正确的ETag头和状态代码 .
const handler = require('@asymmetrik/fhir-response-util');
// Some controller
function removePatientController(req, res, next) {
// The user may have some service to fetch results
service
.remove(req)
.then((id) => {
let json = { deleted: id };
handler.remove(req, res, json);
})
.catch((err) => {
next(err);
});
}
历史
查询任何类型资源的历史时使用
这将在发送json返回客户端的同时设置正确的Content-Type和状态代码.
const handler = require('@asymmetrik/fhir-response-util');
// Some controller
function getPatientHistoryController(req, res, next) {
// The user may have some service to fetch results
service
.history(req)
.then((bundle) => {
handler.history(req, res, bundle);
})
.catch((err) => {
next(err);
});
}
参数
req 财务报告和审定财务报表 res 在每种方法中,你所看见的都是快活的. res 只是一个普通的响应,但请求必须有一个 base version 参数(req.params.base_version) 具体而言,它应该是我们服务器中支持的有效版本之一,即"1 0 2","3 0 1"和"4 0 0". 如果您希望我们为此添加更多的版本,只要让我们知道,我们用这个来确定正确的内容类型以及响应类型和响应头的资源的url.
读取
a. 操作员. read(req, res, json);
req
特快请求.
类型 : Express.req
要求 : true
res
快速响应.
类型 : Express.req
要求 : true
json
Bundle FHIR 资源.
类型 : Object
要求 : true
读取一个
操作员. read One(req, res, json);
req
特快请求.
类型 : Express.req
要求 : true
res
快速响应.
类型 : Express.req
要求 : true
json
个人FHIR资源.
类型 : Object
要求 : true
创建
处理器.create(req, res, json, 选项);
req
特快请求.
类型 : Express.req
要求 : true
res
快速响应.
类型 : Express.req
要求 : true
json
属性从果. 一定有个 id
类型 : Object
要求 : true
json.id
创建的 FHIR 资源的ID .
类型 : String
要求 : true
json.resource_version
如果我们使用历史,我们创造了哪个版本的资源.
类型 : String
要求 : false
options
在响应中设置正确的标题需要额外的选项.
类型 : Object
要求 : true
options.type
这有助于我们设定内容位置和位置标题。 譬如说, handler.create(req, res, json, { type: 'Patient' }) 允许我们设置这样的标题, res.set('Location', '4_0_0/Patient/patient-identifier')。 。 。 .
类型 : “ string ”
要求 : “ true ”
更新
处理器.update(req, res, json, 选项);
req
特快请求.
类型 : Express.req
要求 : true
res
快速响应.
类型 : Express.req
要求 : true
json
属性从果. 一定有个 id
类型 : Object
要求 : true
json.id
创建的 FHIR 资源的ID .
类型 : String
要求 : true
json.resource_version
如果我们使用历史,我们创造了哪个版本的资源.
类型 : String
要求 : false
json.created
我们是否创造了资源。 如果我们创造了资源,我们需要知道,这样我们就可以设定 res.status 201,否则,我们将违约为200.
类型 : Boolean
要求 : false
options
在响应中设置正确的标题需要额外的选项.
类型 : Object
要求 : true
options.type
这有助于我们设定内容位置和位置标题。 譬如说, handler.create(req, res, json, { type: 'Patient' }) 允许我们设置这样的标题, res.set('Location', '4_0_0/Patient/patient-identifier')。 。 。 .
类型 : “ string ”
要求 : “ true ”
删除
a. 操作员.remove(req, res, json);
req
特快请求.
类型 : Express.req
要求 : true
res
快速响应.
类型 : Express.req
要求 : true
json
JSON回应. 不要求但包含可选被删除的属性 .
类型 : Object
要求 : false
json.deleted
被删除的属性应为被删除元素的ID. 譬如说, handler.remove(req, res, { deleted: 'qwerty-123' })。这允许我们在响应标题中添加标识符作为ETag.
类型 : Object
要求 : false
历史
历史管理者(req, res, json);
req
特快请求.
类型 : Express.req
要求 : true
res
快速响应.
类型 : Express.req
要求 : true
json
Bundle FHIR 资源.
类型 : Object
要求 : true