UNPKG

lifen-fhir.js

Version:

FHIR javascript client

136 lines (129 loc) 4 kB
// Generated by CoffeeScript 1.12.7 (function() { var Chance, assert, tu; tu = require('../src/testUtils'); assert = require('assert'); Chance = require('chance'); exports.baseUrl = 'http://hapi.fhir.org/baseDstu3'; exports.spec_for = function(title, impl, baseUrl) { var chance, genPatient; chance = new Chance(); genPatient = function() { return { resourceType: "Patient", text: { status: "generated", div: "<div>Generated</div>" }, identifier: [ { use: "usual", label: "MRN", system: "urn:oid:1.2.36.146.595.217.0.1", value: chance.ssn(), period: { start: "2001-05-06" }, assigner: { display: "Acme Healthcare" } } ], name: [ { use: "official", family: chance.last(), given: [chance.first(), chance.first()] } ] }; }; return describe(title, function() { var buildStep, checkStep, q, subject; this.timeout(10000); q = { defer: impl.defer }; buildStep = tu.stepBuilder(q); checkStep = tu.checkStep(q); subject = impl({ baseUrl: baseUrl }); it("search", function(done) { subject.search({ type: 'Patient', query: { name: 'maud' } }).then((function() { return done(); })); return null; }); return it("CRUD", function(done) { var checkCreatePt, checkReadPt, checkUpdatePt, createPt, deletePt, fail, preparePt, readPt, updatePt; console.log(title + " SPEC"); fail = function(err) { return done(new Error(JSON.stringify(err))); }; preparePt = buildStep('pt', function(next, st) { return next(genPatient()); }); createPt = buildStep('createPt', function(next, st) { var success; success = function(resp) { var id; id = resp.data.id.split("/_history/")[0]; st.pid = id; return next(resp); }; return subject.create({ resource: st.pt }).then(success, fail); }); checkCreatePt = checkStep('createPt', function(st, resp) { var cpt; cpt = resp.data; assert.notEqual(cpt.id, null); return assert.deepEqual(cpt.name[0].family, st.pt.name[0].family); }); readPt = buildStep('readPt', function(next, st) { return subject.read({ type: 'Patient', id: st.pid }).then(next, fail); }); checkReadPt = checkStep('readPt', function(st, resp) { readPt = resp.data; return assert.deepEqual(readPt.name[0].family[0], st.pt.name[0].family[0]); }); updatePt = buildStep('updatePt', function(next, st) { var pt; pt = st.createPt.data; pt.name[0].family[0] = chance.last(); return subject.update({ resource: pt }).then(next, fail); }); checkUpdatePt = checkStep('updatePt', function(st, resp) { updatePt = resp.data; createPt = st.createPt.data; return assert.deepEqual(updatePt.name[0].family[0], createPt.name[0].family[0]); }); deletePt = buildStep('deletePt', function(next, st) { createPt = st.createPt.data; return subject["delete"]({ resource: { resourceType: 'Patient', id: createPt.id } }).then(next, fail); }); preparePt({}).then(createPt).then(checkCreatePt).then(readPt).then(checkReadPt).then(updatePt).then(checkUpdatePt).then(deletePt).then((function() { return done(); })); return null; }); }); }; }).call(this);