├── .dockerignore ├── .gitignore ├── .editorconfig ├── Dockerfile ├── scripts └── nodemon.js ├── src ├── index.js ├── strategies │ └── bearer.strategy.js └── services │ ├── binary │ └── binary.service.js │ ├── linkage │ └── linkage.service.js │ ├── measurereport │ └── measurereport.service.js │ ├── bodysite │ └── bodysite.service.js │ ├── slot │ └── slot.service.js │ ├── bundle │ └── bundle.service.js │ ├── flag │ └── flag.service.js │ ├── basic │ └── basic.service.js │ ├── schedule │ └── schedule.service.js │ ├── goal │ └── goal.service.js │ ├── endpoint │ └── endpoint.service.js │ ├── devicemetric │ └── devicemetric.service.js │ ├── sequence │ └── sequence.service.js │ ├── testreport │ └── testreport.service.js │ ├── devicecomponent │ └── devicecomponent.service.js │ ├── processrequest │ └── processrequest.service.js │ ├── account │ └── account.service.js │ ├── group │ └── group.service.js │ ├── guidanceresponse │ └── guidanceresponse.service.js │ ├── supplydelivery │ └── supplydelivery.service.js │ ├── enrollmentresponse │ └── enrollmentresponse.service.js │ ├── researchsubject │ └── researchsubject.service.js │ ├── subscription │ └── subscription.service.js │ ├── detectedissue │ └── detectedissue.service.js │ ├── supplyrequest │ └── supplyrequest.service.js │ ├── enrollmentrequest │ └── enrollmentrequest.service.js │ ├── contract │ └── contract.service.js │ ├── careteam │ └── careteam.service.js │ ├── list │ └── list.service.js │ ├── substance │ └── substance.service.js │ ├── processresponse │ └── processresponse.service.js │ └── visionprescription │ └── visionprescription.service.js ├── .travis.yml ├── docker-compose.yml ├── env.json ├── LICENSE ├── package.json ├── .eslintrc └── README.md /.dockerignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Dependencies 2 | node_modules 3 | package-lock.json 4 | 5 | # Generated files 6 | *.log 7 | .DS_Store 8 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | insert_final_newline = true 6 | trim_trailing_whitespace = true 7 | charset = utf-8 8 | 9 | [*.md] 10 | trim_trailing_whitespace = false 11 | 12 | [*.{js}] 13 | indent_style = tab 14 | indent_size = 2 15 | 16 | [*.{yml,json}] 17 | indent_style = space 18 | indent_size = 2 19 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:8.9.4 2 | 3 | # Update everything on the box 4 | RUN apt-get -y update 5 | RUN apt-get clean 6 | 7 | # Set the working directory 8 | WORKDIR /srv/src 9 | 10 | # Copy our package.json & install our dependencies 11 | COPY package.json /srv/src/package.json 12 | RUN yarn install 13 | 14 | # Copy the remaining application code 15 | COPY . /srv/src 16 | 17 | # Start the app 18 | CMD yarn start 19 | -------------------------------------------------------------------------------- /scripts/nodemon.js: -------------------------------------------------------------------------------- 1 | const nodemon = require('nodemon'); 2 | 3 | nodemon({ 4 | ignore: ['node_modules'], 5 | script: 'src/index', 6 | ext: 'js json', 7 | verbose: true, 8 | watch: [ 'src/**/*.js' ], 9 | env: process.env 10 | }); 11 | 12 | nodemon.on('restart', files => { 13 | console.log(`Nodemon restarting because ${files.join(',')} changed.`); 14 | }) 15 | .on('crash', () => { 16 | console.error('Nodemon crashed. Waiting for changes to restart.'); 17 | }); 18 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | const FHIRServer = require('@asymmetrik/node-fhir-server-core'); 2 | 3 | const { 4 | fhirServerConfig 5 | } = require('./config'); 6 | 7 | let main = async function () { 8 | 9 | // TODO: Setup database connection and save connection somewhere that can 10 | // be accessible to the services. 11 | 12 | // Start our FHIR server 13 | let server = FHIRServer.initialize(fhirServerConfig); 14 | server.listen(fhirServerConfig.server.port, () => server.logger.verbose('Server is up and running!')); 15 | }; 16 | 17 | main(); 18 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: required 2 | 3 | services: 4 | - docker 5 | 6 | env: 7 | DOCKER_COMPOSE_VERSION: 1.18.0 8 | 9 | addons: 10 | apt: 11 | packages: 12 | - docker-ce 13 | 14 | before_install: 15 | - sudo rm /usr/local/bin/docker-compose 16 | - curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > docker-compose 17 | - chmod +x docker-compose 18 | - sudo mv docker-compose /usr/local/bin 19 | - sudo apt-get update 20 | - sudo apt-get -y install docker-ce 21 | - yarn install 22 | 23 | script: 24 | - docker-compose run npm test 25 | -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | 3 | services: 4 | fhir: 5 | build: 6 | context: . 7 | dockerfile: Dockerfile 8 | environment: 9 | SERVER_PORT: 3000 10 | RESOURCE_SERVER: http://localhost:3000/ 11 | AUTH_SERVER_URI: http://myauthzserver.com 12 | # DO NOT check in actual values for client id and secret 13 | # This is just for ease of development 14 | # Prod keys should be stored in secrets file or env 15 | CLIENT_ID: client 16 | CLIENT_SECRET: secret 17 | INTROSPECTION_URL: https://myauthzserver.com/introspect 18 | ports: 19 | - "3000:3000" 20 | volumes: 21 | - ./src:/srv/src/src 22 | # - ./node_modules:/srv/src/src/node_modules 23 | command: yarn nodemon 24 | -------------------------------------------------------------------------------- /env.json: -------------------------------------------------------------------------------- 1 | { 2 | "LOGGING_LEVEL": { 3 | "type": "string", 4 | "default": "debug" 5 | }, 6 | "SERVER_PORT": { 7 | "type": "number", 8 | "default": 3000 9 | }, 10 | "SSL_KEY": { 11 | "type": "string" 12 | }, 13 | "SSL_CERT": { 14 | "type": "string" 15 | }, 16 | "RESOURCE_SERVER": { 17 | "type": "string", 18 | "default": "http://localhost:3000" 19 | }, 20 | "AUTH_SERVER_URI": { 21 | "type": "string", 22 | "default": "http://localhost:3000" 23 | }, 24 | "WHITELIST": { 25 | "type": "string", 26 | "default": "http://localhost" 27 | }, 28 | "CLIENT_ID": { 29 | "type": "string" 30 | }, 31 | "CLIENT_SECRET": { 32 | "type": "string" 33 | }, 34 | "INTROSPECTION_URL": { 35 | "type": "string" 36 | } 37 | 38 | } 39 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Robert 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /src/strategies/bearer.strategy.js: -------------------------------------------------------------------------------- 1 | const Strategy = require('passport-http-bearer').Strategy; 2 | const request = require('superagent'); 3 | const env = require('var'); 4 | 5 | /** 6 | * Bearer Strategy 7 | * 8 | * This strategy will handle requests with BearerTokens. This is only a template and should be configured to 9 | * your AuthZ server specifications. 10 | * 11 | * Requires ENV variables for introspecting the token 12 | */ 13 | module.exports.strategy = new Strategy( 14 | function(token, done) { 15 | if (!env.INTROSPECTION_URL) { 16 | return done(new Error('Invalid introspection endpoint.')); 17 | } 18 | 19 | request 20 | .post(env.INTROSPECTION_URL) 21 | .set('content-type', 'application/x-www-form-urlencoded') 22 | .send({token: token, client_id: env.CLIENT_ID, client_secret: env.CLIENT_SECRET}) 23 | .then((introspectionResponse) => { 24 | const decoded_token = introspectionResponse.body; 25 | 26 | if (decoded_token.active) { 27 | // TODO: context could come in many forms, you need to decide how to handle it. 28 | // it could also be decodedToken.patient etc... 29 | let { scope, context, sub, user_id } = decoded_token; 30 | let user = {user_id, sub}; 31 | 32 | // return scopes and context. Both required 33 | return done(null, user, {scope, context}); 34 | } 35 | 36 | // default return unauthorized 37 | return done(new Error('Invalid token')); 38 | }); 39 | } 40 | ); 41 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@asymmetrik/fhir-facade-starter", 3 | "version": "1.0.3", 4 | "description": "FHIR Facade Server implementing @asymmetrik/node-fhir-server-core", 5 | "main": "src/index.js", 6 | "repository": "https://github.com/Asymmetrik/fhir-facade-starter.git", 7 | "contributors": [ 8 | "Robert Winterbottom ", 9 | "Jon Lee " 10 | ], 11 | "license": "MIT", 12 | "engines": { 13 | "node": ">=8.6" 14 | }, 15 | "scripts": { 16 | "start": "cross-env NODE_ENV=production; node src/index.js;", 17 | "nodemon": "cross-env NODE_ENV=development; node scripts/nodemon;", 18 | "test": "npm run test:lint;", 19 | "test:lint": "eslint \"src/**/*.js\"", 20 | "test:jest": "jest --forceExit" 21 | }, 22 | "jest": { 23 | "verbose": true, 24 | "testEnvironment": "node", 25 | "collectCoverage": false, 26 | "coverageReporters": [ 27 | "text", 28 | "lcov", 29 | "json" 30 | ], 31 | "coveragePathIgnorePatterns": [ 32 | "/src/testutils/" 33 | ] 34 | }, 35 | "dependencies": { 36 | "@asymmetrik/node-fhir-server-core": "git+https://github.com/Asymmetrik/node-fhir-server-core.git", 37 | "jsonwebtoken": "^8.1.0", 38 | "moment-timezone": "^0.5.14", 39 | "var": "^0.3.2" 40 | }, 41 | "devDependencies": { 42 | "cross-env": "^5.1.6", 43 | "eslint": "^4.14.0", 44 | "jest": "^22.4.2", 45 | "nodemon": "^1.17.2" 46 | }, 47 | "private": false 48 | } 49 | -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "browser": true, 4 | "mocha": true, 5 | "jest": true, 6 | "node": true, 7 | "es6": true 8 | }, 9 | "parserOptions": { 10 | "ecmaVersion": 8 11 | }, 12 | "extends": "eslint:recommended", 13 | "rules": { 14 | "quotes": [2, "single", "avoid-escape"], 15 | "no-compare-neg-zero": 0, 16 | "no-console": 0, 17 | "no-debugger": 2, 18 | "no-array-constructor": 2, 19 | "no-caller": 2, 20 | "no-catch-shadow": 2, 21 | "no-eval": 2, 22 | "no-extend-native": 2, 23 | "no-extra-bind": 2, 24 | "no-implied-eval": 2, 25 | "no-iterator": 2, 26 | "no-label-var": 2, 27 | "no-labels": 2, 28 | "no-lone-blocks": 2, 29 | "no-loop-func": 2, 30 | "no-multi-spaces": 2, 31 | "no-multi-str": 2, 32 | "no-native-reassign": 2, 33 | "no-new": 2, 34 | "no-new-func": 2, 35 | "no-new-object": 2, 36 | "no-new-wrappers": 2, 37 | "no-octal-escape": 2, 38 | "no-proto": 2, 39 | "no-return-assign": 2, 40 | "no-script-url": 2, 41 | "no-sequences": 2, 42 | "no-shadow": 2, 43 | "no-shadow-restricted-names": 2, 44 | "no-spaced-func": 2, 45 | "no-trailing-spaces": 2, 46 | "no-undef-init": 2, 47 | "no-unused-expressions": 2, 48 | "no-unused-vars": [2, {"vars": "all", "args": "after-used", "argsIgnorePattern": "^_"}], 49 | "no-use-before-define": 2, 50 | "no-with": 2, 51 | "comma-spacing": 2, 52 | "curly": [2, "all"], 53 | "dot-notation": [0, { "allowKeywords": true }], 54 | "eol-last": 2, 55 | "no-extra-parens": [2, "functions"], 56 | "eqeqeq": 2, 57 | "key-spacing": [2, { "beforeColon": false, "afterColon": true }], 58 | "new-cap": 2, 59 | "new-parens": 2, 60 | "semi": 2, 61 | "semi-spacing": [2, {"before": false, "after": true}], 62 | "space-infix-ops": 2, 63 | "keyword-spacing": 2, 64 | "space-unary-ops": [2, { "words": true, "nonwords": false }], 65 | "yoda": [2, "never"] 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Intro 2 | This project is a FHIR facade server built on `@asymmetrik/node-fhir-server-core`. The facade server is meant to be used with your existing (or new) patient database. All you need to do is set up the database connection and fill in the queries and you will have a FHIR server! 3 | 4 | ## Getting Started with Docker 5 | 1. Install the latest [Docker Community Edition](https://www.docker.com/community-edition) for your OS if you do not already have it installed. 6 | 2. Run `docker-compose up`. 7 | 3. Visit `localhost:3000/3_0_1/metadata` to view the conformance statement. 8 | 9 | ## Getting Started with Node 10 | 1. Install the latest LTS for [Node.js](https://nodejs.org/en/) if you do not already have it installed. 11 | 2. Make sure the default values defined in `env.json` are valid. 12 | 3. Run `yarn` or `npm install`. 13 | 4. Run `yarn start` or `npm run start`. 14 | 5. Visit `localhost:3000/3_0_1/metadata` to view the conformance statement. 15 | 16 | ## Next steps 17 | At this point you can now start testing the endpoints. Depending what profiles you opt into, certain routes will be available. You can view the routes enabled based on which service methods you provide over at [`@asymmetrik/node-fhir-server-core`](https://github.com/Asymmetrik/node-fhir-server-core#profiles). 18 | 19 | 1. Setup the database connection (Mongo/Sequelize) in `./src/index.js`. 20 | 2. Look through `./src/config.js` to set up the server and decide which profile you want to support. Comment out ones you don't want to support. 21 | 3. Look at the corresponding service templates for the resources you want to enable. You can remove any interaction you don't want to support. For instance, if you don't want write capability for the Patient resource, you would delete the create and update functions in `./src/services/patient/patient.service.js`. This will disable their routes. 22 | 4. Write your queries and test! 23 | 24 | ## Authorization 25 | The facade server uses [passportjs](http://www.passportjs.org/) for authentication. This server comes with a bearer strategy template. You can implement your own passport strategy and reference it in `./src/config.js` to conforms to your AuthZ server. For more information on authorization please visit [http://docs.smarthealthit.org/authorization/](http://docs.smarthealthit.org/authorization/). 26 | 27 | ## Having trouble with something? 28 | If you have questions specific to Docker or Node, please consider asking on Stack Overflow. They already have a lot of support on these topics. If your questions is related to the FHIR specification, please review that documentation at [https://www.hl7.org/fhir/](https://www.hl7.org/fhir/). Any questions related to this specific package, please ask in the issues section. Also, if you think you are experiencing a bug or see something incorrect with the spec, please file an issue so we can help you as soon as we can. 29 | 30 | ## License 31 | This project is [MIT licensed](./LICENSE). 32 | -------------------------------------------------------------------------------- /src/services/binary/binary.service.js: -------------------------------------------------------------------------------- 1 | /*eslint no-unused-vars: "warn"*/ 2 | 3 | const { RESOURCES } = require('@asymmetrik/node-fhir-server-core').constants; 4 | const FHIRServer = require('@asymmetrik/node-fhir-server-core'); 5 | 6 | let getBinary = (base_version) => { 7 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.BINARY));}; 8 | 9 | let getMeta = (base_version) => { 10 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.META));}; 11 | 12 | module.exports.search = (args, context, logger) => new Promise((resolve, reject) => { 13 | logger.info('Binary >>> search'); 14 | 15 | // Common search params 16 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 17 | 18 | // Search Result params 19 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 20 | 21 | // Resource Specific params 22 | let contenttype = args['contenttype']; 23 | 24 | // TODO: Build query from Parameters 25 | 26 | // TODO: Query database 27 | 28 | let Binary = getBinary(base_version); 29 | 30 | // Cast all results to Binary Class 31 | let binary_resource = new Binary(); 32 | // TODO: Set data with constructor or setter methods 33 | binary_resource.id = 'test id'; 34 | 35 | // Return Array 36 | resolve([binary_resource]); 37 | }); 38 | 39 | module.exports.searchById = (args, context, logger) => new Promise((resolve, reject) => { 40 | logger.info('Binary >>> searchById'); 41 | 42 | let { base_version, id } = args; 43 | 44 | let Binary = getBinary(base_version); 45 | 46 | // TODO: Build query from Parameters 47 | 48 | // TODO: Query database 49 | 50 | // Cast result to Binary Class 51 | let binary_resource = new Binary(); 52 | // TODO: Set data with constructor or setter methods 53 | binary_resource.id = 'test id'; 54 | 55 | // Return resource class 56 | // resolve(binary_resource); 57 | resolve(); 58 | }); 59 | 60 | module.exports.create = (args, context, logger) => new Promise((resolve, reject) => { 61 | logger.info('Binary >>> create'); 62 | 63 | let { base_version, id, resource } = args; 64 | 65 | let Binary = getBinary(base_version); 66 | let Meta = getMeta(base_version); 67 | 68 | // TODO: determine if client/server sets ID 69 | 70 | // Cast resource to Binary Class 71 | let binary_resource = new Binary(resource); 72 | binary_resource.meta = new Meta(); 73 | // TODO: set meta info 74 | 75 | // TODO: save record to database 76 | 77 | // Return Id 78 | resolve({ id: binary_resource.id }); 79 | }); 80 | 81 | module.exports.update = (args, context, logger) => new Promise((resolve, reject) => { 82 | logger.info('Binary >>> update'); 83 | 84 | let { base_version, id, resource } = args; 85 | 86 | let Binary = getBinary(base_version); 87 | let Meta = getMeta(base_version); 88 | 89 | // Cast resource to Binary Class 90 | let binary_resource = new Binary(resource); 91 | binary_resource.meta = new Meta(); 92 | // TODO: set meta info, increment meta ID 93 | 94 | // TODO: save record to database 95 | 96 | // Return id, if recorded was created or updated, new meta version id 97 | resolve({ id: binary_resource.id, created: false, resource_version: binary_resource.meta.versionId }); 98 | }); 99 | 100 | module.exports.remove = (args, context, logger) => new Promise((resolve, reject) => { 101 | logger.info('Binary >>> remove'); 102 | 103 | let { id } = args; 104 | 105 | // TODO: delete record in database (soft/hard) 106 | 107 | // Return number of records deleted 108 | resolve({ deleted: 0 }); 109 | }); 110 | 111 | module.exports.searchByVersionId = (args, context, logger) => new Promise((resolve, reject) => { 112 | logger.info('Binary >>> searchByVersionId'); 113 | 114 | let { base_version, id, version_id } = args; 115 | 116 | let Binary = getBinary(base_version); 117 | 118 | // TODO: Build query from Parameters 119 | 120 | // TODO: Query database 121 | 122 | // Cast result to Binary Class 123 | let binary_resource = new Binary(); 124 | 125 | // Return resource class 126 | resolve(binary_resource); 127 | }); 128 | 129 | module.exports.history = (args, context, logger) => new Promise((resolve, reject) => { 130 | logger.info('Binary >>> history'); 131 | 132 | // Common search params 133 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 134 | 135 | // Search Result params 136 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 137 | 138 | // Resource Specific params 139 | let contenttype = args['contenttype']; 140 | 141 | // TODO: Build query from Parameters 142 | 143 | // TODO: Query database 144 | 145 | let Binary = getBinary(base_version); 146 | 147 | // Cast all results to Binary Class 148 | let binary_resource = new Binary(); 149 | 150 | // Return Array 151 | resolve([binary_resource]); 152 | }); 153 | 154 | module.exports.historyById = (args, context, logger) => new Promise((resolve, reject) => { 155 | logger.info('Binary >>> historyById'); 156 | 157 | // Common search params 158 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 159 | 160 | // Search Result params 161 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 162 | 163 | // Resource Specific params 164 | let contenttype = args['contenttype']; 165 | 166 | // TODO: Build query from Parameters 167 | 168 | // TODO: Query database 169 | 170 | let Binary = getBinary(base_version); 171 | 172 | // Cast all results to Binary Class 173 | let binary_resource = new Binary(); 174 | 175 | // Return Array 176 | resolve([binary_resource]); 177 | }); 178 | 179 | -------------------------------------------------------------------------------- /src/services/linkage/linkage.service.js: -------------------------------------------------------------------------------- 1 | /*eslint no-unused-vars: "warn"*/ 2 | 3 | const { RESOURCES } = require('@asymmetrik/node-fhir-server-core').constants; 4 | const FHIRServer = require('@asymmetrik/node-fhir-server-core'); 5 | 6 | let getLinkage = (base_version) => { 7 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.LINKAGE));}; 8 | 9 | let getMeta = (base_version) => { 10 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.META));}; 11 | 12 | module.exports.search = (args, context, logger) => new Promise((resolve, reject) => { 13 | logger.info('Linkage >>> search'); 14 | 15 | // Common search params 16 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 17 | 18 | // Search Result params 19 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 20 | 21 | // Resource Specific params 22 | let author = args['author']; 23 | let item = args['item']; 24 | let source = args['source']; 25 | 26 | // TODO: Build query from Parameters 27 | 28 | // TODO: Query database 29 | 30 | let Linkage = getLinkage(base_version); 31 | 32 | // Cast all results to Linkage Class 33 | let linkage_resource = new Linkage(); 34 | // TODO: Set data with constructor or setter methods 35 | linkage_resource.id = 'test id'; 36 | 37 | // Return Array 38 | resolve([linkage_resource]); 39 | }); 40 | 41 | module.exports.searchById = (args, context, logger) => new Promise((resolve, reject) => { 42 | logger.info('Linkage >>> searchById'); 43 | 44 | let { base_version, id } = args; 45 | 46 | let Linkage = getLinkage(base_version); 47 | 48 | // TODO: Build query from Parameters 49 | 50 | // TODO: Query database 51 | 52 | // Cast result to Linkage Class 53 | let linkage_resource = new Linkage(); 54 | // TODO: Set data with constructor or setter methods 55 | linkage_resource.id = 'test id'; 56 | 57 | // Return resource class 58 | // resolve(linkage_resource); 59 | resolve(); 60 | }); 61 | 62 | module.exports.create = (args, context, logger) => new Promise((resolve, reject) => { 63 | logger.info('Linkage >>> create'); 64 | 65 | let { base_version, id, resource } = args; 66 | 67 | let Linkage = getLinkage(base_version); 68 | let Meta = getMeta(base_version); 69 | 70 | // TODO: determine if client/server sets ID 71 | 72 | // Cast resource to Linkage Class 73 | let linkage_resource = new Linkage(resource); 74 | linkage_resource.meta = new Meta(); 75 | // TODO: set meta info 76 | 77 | // TODO: save record to database 78 | 79 | // Return Id 80 | resolve({ id: linkage_resource.id }); 81 | }); 82 | 83 | module.exports.update = (args, context, logger) => new Promise((resolve, reject) => { 84 | logger.info('Linkage >>> update'); 85 | 86 | let { base_version, id, resource } = args; 87 | 88 | let Linkage = getLinkage(base_version); 89 | let Meta = getMeta(base_version); 90 | 91 | // Cast resource to Linkage Class 92 | let linkage_resource = new Linkage(resource); 93 | linkage_resource.meta = new Meta(); 94 | // TODO: set meta info, increment meta ID 95 | 96 | // TODO: save record to database 97 | 98 | // Return id, if recorded was created or updated, new meta version id 99 | resolve({ id: linkage_resource.id, created: false, resource_version: linkage_resource.meta.versionId }); 100 | }); 101 | 102 | module.exports.remove = (args, context, logger) => new Promise((resolve, reject) => { 103 | logger.info('Linkage >>> remove'); 104 | 105 | let { id } = args; 106 | 107 | // TODO: delete record in database (soft/hard) 108 | 109 | // Return number of records deleted 110 | resolve({ deleted: 0 }); 111 | }); 112 | 113 | module.exports.searchByVersionId = (args, context, logger) => new Promise((resolve, reject) => { 114 | logger.info('Linkage >>> searchByVersionId'); 115 | 116 | let { base_version, id, version_id } = args; 117 | 118 | let Linkage = getLinkage(base_version); 119 | 120 | // TODO: Build query from Parameters 121 | 122 | // TODO: Query database 123 | 124 | // Cast result to Linkage Class 125 | let linkage_resource = new Linkage(); 126 | 127 | // Return resource class 128 | resolve(linkage_resource); 129 | }); 130 | 131 | module.exports.history = (args, context, logger) => new Promise((resolve, reject) => { 132 | logger.info('Linkage >>> history'); 133 | 134 | // Common search params 135 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 136 | 137 | // Search Result params 138 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 139 | 140 | // Resource Specific params 141 | let author = args['author']; 142 | let item = args['item']; 143 | let source = args['source']; 144 | 145 | // TODO: Build query from Parameters 146 | 147 | // TODO: Query database 148 | 149 | let Linkage = getLinkage(base_version); 150 | 151 | // Cast all results to Linkage Class 152 | let linkage_resource = new Linkage(); 153 | 154 | // Return Array 155 | resolve([linkage_resource]); 156 | }); 157 | 158 | module.exports.historyById = (args, context, logger) => new Promise((resolve, reject) => { 159 | logger.info('Linkage >>> historyById'); 160 | 161 | // Common search params 162 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 163 | 164 | // Search Result params 165 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 166 | 167 | // Resource Specific params 168 | let author = args['author']; 169 | let item = args['item']; 170 | let source = args['source']; 171 | 172 | // TODO: Build query from Parameters 173 | 174 | // TODO: Query database 175 | 176 | let Linkage = getLinkage(base_version); 177 | 178 | // Cast all results to Linkage Class 179 | let linkage_resource = new Linkage(); 180 | 181 | // Return Array 182 | resolve([linkage_resource]); 183 | }); 184 | 185 | -------------------------------------------------------------------------------- /src/services/measurereport/measurereport.service.js: -------------------------------------------------------------------------------- 1 | /*eslint no-unused-vars: "warn"*/ 2 | 3 | const { RESOURCES } = require('@asymmetrik/node-fhir-server-core').constants; 4 | const FHIRServer = require('@asymmetrik/node-fhir-server-core'); 5 | 6 | let getMeasureReport = (base_version) => { 7 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.MEASUREREPORT));}; 8 | 9 | let getMeta = (base_version) => { 10 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.META));}; 11 | 12 | module.exports.search = (args, context, logger) => new Promise((resolve, reject) => { 13 | logger.info('MeasureReport >>> search'); 14 | 15 | // Common search params 16 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 17 | 18 | // Search Result params 19 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 20 | 21 | // Resource Specific params 22 | 23 | // TODO: Build query from Parameters 24 | 25 | // TODO: Query database 26 | 27 | let MeasureReport = getMeasureReport(base_version); 28 | 29 | // Cast all results to MeasureReport Class 30 | let measurereport_resource = new MeasureReport(); 31 | // TODO: Set data with constructor or setter methods 32 | measurereport_resource.id = 'test id'; 33 | 34 | // Return Array 35 | resolve([measurereport_resource]); 36 | }); 37 | 38 | module.exports.searchById = (args, context, logger) => new Promise((resolve, reject) => { 39 | logger.info('MeasureReport >>> searchById'); 40 | 41 | let { base_version, id } = args; 42 | 43 | let MeasureReport = getMeasureReport(base_version); 44 | 45 | // TODO: Build query from Parameters 46 | 47 | // TODO: Query database 48 | 49 | // Cast result to MeasureReport Class 50 | let measurereport_resource = new MeasureReport(); 51 | // TODO: Set data with constructor or setter methods 52 | measurereport_resource.id = 'test id'; 53 | 54 | // Return resource class 55 | // resolve(measurereport_resource); 56 | resolve(); 57 | }); 58 | 59 | module.exports.create = (args, context, logger) => new Promise((resolve, reject) => { 60 | logger.info('MeasureReport >>> create'); 61 | 62 | let { base_version, id, resource } = args; 63 | 64 | let MeasureReport = getMeasureReport(base_version); 65 | let Meta = getMeta(base_version); 66 | 67 | // TODO: determine if client/server sets ID 68 | 69 | // Cast resource to MeasureReport Class 70 | let measurereport_resource = new MeasureReport(resource); 71 | measurereport_resource.meta = new Meta(); 72 | // TODO: set meta info 73 | 74 | // TODO: save record to database 75 | 76 | // Return Id 77 | resolve({ id: measurereport_resource.id }); 78 | }); 79 | 80 | module.exports.update = (args, context, logger) => new Promise((resolve, reject) => { 81 | logger.info('MeasureReport >>> update'); 82 | 83 | let { base_version, id, resource } = args; 84 | 85 | let MeasureReport = getMeasureReport(base_version); 86 | let Meta = getMeta(base_version); 87 | 88 | // Cast resource to MeasureReport Class 89 | let measurereport_resource = new MeasureReport(resource); 90 | measurereport_resource.meta = new Meta(); 91 | // TODO: set meta info, increment meta ID 92 | 93 | // TODO: save record to database 94 | 95 | // Return id, if recorded was created or updated, new meta version id 96 | resolve({ id: measurereport_resource.id, created: false, resource_version: measurereport_resource.meta.versionId }); 97 | }); 98 | 99 | module.exports.remove = (args, context, logger) => new Promise((resolve, reject) => { 100 | logger.info('MeasureReport >>> remove'); 101 | 102 | let { id } = args; 103 | 104 | // TODO: delete record in database (soft/hard) 105 | 106 | // Return number of records deleted 107 | resolve({ deleted: 0 }); 108 | }); 109 | 110 | module.exports.searchByVersionId = (args, context, logger) => new Promise((resolve, reject) => { 111 | logger.info('MeasureReport >>> searchByVersionId'); 112 | 113 | let { base_version, id, version_id } = args; 114 | 115 | let MeasureReport = getMeasureReport(base_version); 116 | 117 | // TODO: Build query from Parameters 118 | 119 | // TODO: Query database 120 | 121 | // Cast result to MeasureReport Class 122 | let measurereport_resource = new MeasureReport(); 123 | 124 | // Return resource class 125 | resolve(measurereport_resource); 126 | }); 127 | 128 | module.exports.history = (args, context, logger) => new Promise((resolve, reject) => { 129 | logger.info('MeasureReport >>> history'); 130 | 131 | // Common search params 132 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 133 | 134 | // Search Result params 135 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 136 | 137 | // Resource Specific params 138 | 139 | // TODO: Build query from Parameters 140 | 141 | // TODO: Query database 142 | 143 | let MeasureReport = getMeasureReport(base_version); 144 | 145 | // Cast all results to MeasureReport Class 146 | let measurereport_resource = new MeasureReport(); 147 | 148 | // Return Array 149 | resolve([measurereport_resource]); 150 | }); 151 | 152 | module.exports.historyById = (args, context, logger) => new Promise((resolve, reject) => { 153 | logger.info('MeasureReport >>> historyById'); 154 | 155 | // Common search params 156 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 157 | 158 | // Search Result params 159 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 160 | 161 | // Resource Specific params 162 | 163 | // TODO: Build query from Parameters 164 | 165 | // TODO: Query database 166 | 167 | let MeasureReport = getMeasureReport(base_version); 168 | 169 | // Cast all results to MeasureReport Class 170 | let measurereport_resource = new MeasureReport(); 171 | 172 | // Return Array 173 | resolve([measurereport_resource]); 174 | }); 175 | 176 | -------------------------------------------------------------------------------- /src/services/bodysite/bodysite.service.js: -------------------------------------------------------------------------------- 1 | /*eslint no-unused-vars: "warn"*/ 2 | 3 | const { RESOURCES } = require('@asymmetrik/node-fhir-server-core').constants; 4 | const FHIRServer = require('@asymmetrik/node-fhir-server-core'); 5 | 6 | let getBodySite = (base_version) => { 7 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.BODYSITE));}; 8 | 9 | let getMeta = (base_version) => { 10 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.META));}; 11 | 12 | module.exports.search = (args, context, logger) => new Promise((resolve, reject) => { 13 | logger.info('BodySite >>> search'); 14 | 15 | // Common search params 16 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 17 | 18 | // Search Result params 19 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 20 | 21 | // Resource Specific params 22 | let code = args['code']; 23 | let identifier = args['identifier']; 24 | let patient = args['patient']; 25 | 26 | // TODO: Build query from Parameters 27 | 28 | // TODO: Query database 29 | 30 | let BodySite = getBodySite(base_version); 31 | 32 | // Cast all results to BodySite Class 33 | let bodysite_resource = new BodySite(); 34 | // TODO: Set data with constructor or setter methods 35 | bodysite_resource.id = 'test id'; 36 | 37 | // Return Array 38 | resolve([bodysite_resource]); 39 | }); 40 | 41 | module.exports.searchById = (args, context, logger) => new Promise((resolve, reject) => { 42 | logger.info('BodySite >>> searchById'); 43 | 44 | let { base_version, id } = args; 45 | 46 | let BodySite = getBodySite(base_version); 47 | 48 | // TODO: Build query from Parameters 49 | 50 | // TODO: Query database 51 | 52 | // Cast result to BodySite Class 53 | let bodysite_resource = new BodySite(); 54 | // TODO: Set data with constructor or setter methods 55 | bodysite_resource.id = 'test id'; 56 | 57 | // Return resource class 58 | // resolve(bodysite_resource); 59 | resolve(); 60 | }); 61 | 62 | module.exports.create = (args, context, logger) => new Promise((resolve, reject) => { 63 | logger.info('BodySite >>> create'); 64 | 65 | let { base_version, id, resource } = args; 66 | 67 | let BodySite = getBodySite(base_version); 68 | let Meta = getMeta(base_version); 69 | 70 | // TODO: determine if client/server sets ID 71 | 72 | // Cast resource to BodySite Class 73 | let bodysite_resource = new BodySite(resource); 74 | bodysite_resource.meta = new Meta(); 75 | // TODO: set meta info 76 | 77 | // TODO: save record to database 78 | 79 | // Return Id 80 | resolve({ id: bodysite_resource.id }); 81 | }); 82 | 83 | module.exports.update = (args, context, logger) => new Promise((resolve, reject) => { 84 | logger.info('BodySite >>> update'); 85 | 86 | let { base_version, id, resource } = args; 87 | 88 | let BodySite = getBodySite(base_version); 89 | let Meta = getMeta(base_version); 90 | 91 | // Cast resource to BodySite Class 92 | let bodysite_resource = new BodySite(resource); 93 | bodysite_resource.meta = new Meta(); 94 | // TODO: set meta info, increment meta ID 95 | 96 | // TODO: save record to database 97 | 98 | // Return id, if recorded was created or updated, new meta version id 99 | resolve({ id: bodysite_resource.id, created: false, resource_version: bodysite_resource.meta.versionId }); 100 | }); 101 | 102 | module.exports.remove = (args, context, logger) => new Promise((resolve, reject) => { 103 | logger.info('BodySite >>> remove'); 104 | 105 | let { id } = args; 106 | 107 | // TODO: delete record in database (soft/hard) 108 | 109 | // Return number of records deleted 110 | resolve({ deleted: 0 }); 111 | }); 112 | 113 | module.exports.searchByVersionId = (args, context, logger) => new Promise((resolve, reject) => { 114 | logger.info('BodySite >>> searchByVersionId'); 115 | 116 | let { base_version, id, version_id } = args; 117 | 118 | let BodySite = getBodySite(base_version); 119 | 120 | // TODO: Build query from Parameters 121 | 122 | // TODO: Query database 123 | 124 | // Cast result to BodySite Class 125 | let bodysite_resource = new BodySite(); 126 | 127 | // Return resource class 128 | resolve(bodysite_resource); 129 | }); 130 | 131 | module.exports.history = (args, context, logger) => new Promise((resolve, reject) => { 132 | logger.info('BodySite >>> history'); 133 | 134 | // Common search params 135 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 136 | 137 | // Search Result params 138 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 139 | 140 | // Resource Specific params 141 | let code = args['code']; 142 | let identifier = args['identifier']; 143 | let patient = args['patient']; 144 | 145 | // TODO: Build query from Parameters 146 | 147 | // TODO: Query database 148 | 149 | let BodySite = getBodySite(base_version); 150 | 151 | // Cast all results to BodySite Class 152 | let bodysite_resource = new BodySite(); 153 | 154 | // Return Array 155 | resolve([bodysite_resource]); 156 | }); 157 | 158 | module.exports.historyById = (args, context, logger) => new Promise((resolve, reject) => { 159 | logger.info('BodySite >>> historyById'); 160 | 161 | // Common search params 162 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 163 | 164 | // Search Result params 165 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 166 | 167 | // Resource Specific params 168 | let code = args['code']; 169 | let identifier = args['identifier']; 170 | let patient = args['patient']; 171 | 172 | // TODO: Build query from Parameters 173 | 174 | // TODO: Query database 175 | 176 | let BodySite = getBodySite(base_version); 177 | 178 | // Cast all results to BodySite Class 179 | let bodysite_resource = new BodySite(); 180 | 181 | // Return Array 182 | resolve([bodysite_resource]); 183 | }); 184 | 185 | -------------------------------------------------------------------------------- /src/services/slot/slot.service.js: -------------------------------------------------------------------------------- 1 | /*eslint no-unused-vars: "warn"*/ 2 | 3 | const { RESOURCES } = require('@asymmetrik/node-fhir-server-core').constants; 4 | const FHIRServer = require('@asymmetrik/node-fhir-server-core'); 5 | 6 | let getSlot = (base_version) => { 7 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.SLOT));}; 8 | 9 | let getMeta = (base_version) => { 10 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.META));}; 11 | 12 | module.exports.search = (args, context, logger) => new Promise((resolve, reject) => { 13 | logger.info('Slot >>> search'); 14 | 15 | // Common search params 16 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 17 | 18 | // Search Result params 19 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 20 | 21 | // Resource Specific params 22 | let identifier = args['identifier']; 23 | let schedule = args['schedule']; 24 | let slot_type = args['slot-type']; 25 | let start = args['start']; 26 | let status = args['status']; 27 | 28 | // TODO: Build query from Parameters 29 | 30 | // TODO: Query database 31 | 32 | let Slot = getSlot(base_version); 33 | 34 | // Cast all results to Slot Class 35 | let slot_resource = new Slot(); 36 | // TODO: Set data with constructor or setter methods 37 | slot_resource.id = 'test id'; 38 | 39 | // Return Array 40 | resolve([slot_resource]); 41 | }); 42 | 43 | module.exports.searchById = (args, context, logger) => new Promise((resolve, reject) => { 44 | logger.info('Slot >>> searchById'); 45 | 46 | let { base_version, id } = args; 47 | 48 | let Slot = getSlot(base_version); 49 | 50 | // TODO: Build query from Parameters 51 | 52 | // TODO: Query database 53 | 54 | // Cast result to Slot Class 55 | let slot_resource = new Slot(); 56 | // TODO: Set data with constructor or setter methods 57 | slot_resource.id = 'test id'; 58 | 59 | // Return resource class 60 | // resolve(slot_resource); 61 | resolve(); 62 | }); 63 | 64 | module.exports.create = (args, context, logger) => new Promise((resolve, reject) => { 65 | logger.info('Slot >>> create'); 66 | 67 | let { base_version, id, resource } = args; 68 | 69 | let Slot = getSlot(base_version); 70 | let Meta = getMeta(base_version); 71 | 72 | // TODO: determine if client/server sets ID 73 | 74 | // Cast resource to Slot Class 75 | let slot_resource = new Slot(resource); 76 | slot_resource.meta = new Meta(); 77 | // TODO: set meta info 78 | 79 | // TODO: save record to database 80 | 81 | // Return Id 82 | resolve({ id: slot_resource.id }); 83 | }); 84 | 85 | module.exports.update = (args, context, logger) => new Promise((resolve, reject) => { 86 | logger.info('Slot >>> update'); 87 | 88 | let { base_version, id, resource } = args; 89 | 90 | let Slot = getSlot(base_version); 91 | let Meta = getMeta(base_version); 92 | 93 | // Cast resource to Slot Class 94 | let slot_resource = new Slot(resource); 95 | slot_resource.meta = new Meta(); 96 | // TODO: set meta info, increment meta ID 97 | 98 | // TODO: save record to database 99 | 100 | // Return id, if recorded was created or updated, new meta version id 101 | resolve({ id: slot_resource.id, created: false, resource_version: slot_resource.meta.versionId }); 102 | }); 103 | 104 | module.exports.remove = (args, context, logger) => new Promise((resolve, reject) => { 105 | logger.info('Slot >>> remove'); 106 | 107 | let { id } = args; 108 | 109 | // TODO: delete record in database (soft/hard) 110 | 111 | // Return number of records deleted 112 | resolve({ deleted: 0 }); 113 | }); 114 | 115 | module.exports.searchByVersionId = (args, context, logger) => new Promise((resolve, reject) => { 116 | logger.info('Slot >>> searchByVersionId'); 117 | 118 | let { base_version, id, version_id } = args; 119 | 120 | let Slot = getSlot(base_version); 121 | 122 | // TODO: Build query from Parameters 123 | 124 | // TODO: Query database 125 | 126 | // Cast result to Slot Class 127 | let slot_resource = new Slot(); 128 | 129 | // Return resource class 130 | resolve(slot_resource); 131 | }); 132 | 133 | module.exports.history = (args, context, logger) => new Promise((resolve, reject) => { 134 | logger.info('Slot >>> history'); 135 | 136 | // Common search params 137 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 138 | 139 | // Search Result params 140 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 141 | 142 | // Resource Specific params 143 | let identifier = args['identifier']; 144 | let schedule = args['schedule']; 145 | let slot_type = args['slot-type']; 146 | let start = args['start']; 147 | let status = args['status']; 148 | 149 | // TODO: Build query from Parameters 150 | 151 | // TODO: Query database 152 | 153 | let Slot = getSlot(base_version); 154 | 155 | // Cast all results to Slot Class 156 | let slot_resource = new Slot(); 157 | 158 | // Return Array 159 | resolve([slot_resource]); 160 | }); 161 | 162 | module.exports.historyById = (args, context, logger) => new Promise((resolve, reject) => { 163 | logger.info('Slot >>> historyById'); 164 | 165 | // Common search params 166 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 167 | 168 | // Search Result params 169 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 170 | 171 | // Resource Specific params 172 | let identifier = args['identifier']; 173 | let schedule = args['schedule']; 174 | let slot_type = args['slot-type']; 175 | let start = args['start']; 176 | let status = args['status']; 177 | 178 | // TODO: Build query from Parameters 179 | 180 | // TODO: Query database 181 | 182 | let Slot = getSlot(base_version); 183 | 184 | // Cast all results to Slot Class 185 | let slot_resource = new Slot(); 186 | 187 | // Return Array 188 | resolve([slot_resource]); 189 | }); 190 | 191 | -------------------------------------------------------------------------------- /src/services/bundle/bundle.service.js: -------------------------------------------------------------------------------- 1 | /*eslint no-unused-vars: "warn"*/ 2 | 3 | const { RESOURCES } = require('@asymmetrik/node-fhir-server-core').constants; 4 | const FHIRServer = require('@asymmetrik/node-fhir-server-core'); 5 | 6 | let getBundle = (base_version) => { 7 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.BUNDLE));}; 8 | 9 | let getMeta = (base_version) => { 10 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.META));}; 11 | 12 | module.exports.search = (args, context, logger) => new Promise((resolve, reject) => { 13 | logger.info('Bundle >>> search'); 14 | 15 | // Common search params 16 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 17 | 18 | // Search Result params 19 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 20 | 21 | // Resource Specific params 22 | let composition = args['composition']; 23 | let identifier = args['identifier']; 24 | let message = args['message']; 25 | let type = args['type']; 26 | 27 | // TODO: Build query from Parameters 28 | 29 | // TODO: Query database 30 | 31 | let Bundle = getBundle(base_version); 32 | 33 | // Cast all results to Bundle Class 34 | let bundle_resource = new Bundle(); 35 | // TODO: Set data with constructor or setter methods 36 | bundle_resource.id = 'test id'; 37 | 38 | // Return Array 39 | resolve([bundle_resource]); 40 | }); 41 | 42 | module.exports.searchById = (args, context, logger) => new Promise((resolve, reject) => { 43 | logger.info('Bundle >>> searchById'); 44 | 45 | let { base_version, id } = args; 46 | 47 | let Bundle = getBundle(base_version); 48 | 49 | // TODO: Build query from Parameters 50 | 51 | // TODO: Query database 52 | 53 | // Cast result to Bundle Class 54 | let bundle_resource = new Bundle(); 55 | // TODO: Set data with constructor or setter methods 56 | bundle_resource.id = 'test id'; 57 | 58 | // Return resource class 59 | // resolve(bundle_resource); 60 | resolve(); 61 | }); 62 | 63 | module.exports.create = (args, context, logger) => new Promise((resolve, reject) => { 64 | logger.info('Bundle >>> create'); 65 | 66 | let { base_version, id, resource } = args; 67 | 68 | let Bundle = getBundle(base_version); 69 | let Meta = getMeta(base_version); 70 | 71 | // TODO: determine if client/server sets ID 72 | 73 | // Cast resource to Bundle Class 74 | let bundle_resource = new Bundle(resource); 75 | bundle_resource.meta = new Meta(); 76 | // TODO: set meta info 77 | 78 | // TODO: save record to database 79 | 80 | // Return Id 81 | resolve({ id: bundle_resource.id }); 82 | }); 83 | 84 | module.exports.update = (args, context, logger) => new Promise((resolve, reject) => { 85 | logger.info('Bundle >>> update'); 86 | 87 | let { base_version, id, resource } = args; 88 | 89 | let Bundle = getBundle(base_version); 90 | let Meta = getMeta(base_version); 91 | 92 | // Cast resource to Bundle Class 93 | let bundle_resource = new Bundle(resource); 94 | bundle_resource.meta = new Meta(); 95 | // TODO: set meta info, increment meta ID 96 | 97 | // TODO: save record to database 98 | 99 | // Return id, if recorded was created or updated, new meta version id 100 | resolve({ id: bundle_resource.id, created: false, resource_version: bundle_resource.meta.versionId }); 101 | }); 102 | 103 | module.exports.remove = (args, context, logger) => new Promise((resolve, reject) => { 104 | logger.info('Bundle >>> remove'); 105 | 106 | let { id } = args; 107 | 108 | // TODO: delete record in database (soft/hard) 109 | 110 | // Return number of records deleted 111 | resolve({ deleted: 0 }); 112 | }); 113 | 114 | module.exports.searchByVersionId = (args, context, logger) => new Promise((resolve, reject) => { 115 | logger.info('Bundle >>> searchByVersionId'); 116 | 117 | let { base_version, id, version_id } = args; 118 | 119 | let Bundle = getBundle(base_version); 120 | 121 | // TODO: Build query from Parameters 122 | 123 | // TODO: Query database 124 | 125 | // Cast result to Bundle Class 126 | let bundle_resource = new Bundle(); 127 | 128 | // Return resource class 129 | resolve(bundle_resource); 130 | }); 131 | 132 | module.exports.history = (args, context, logger) => new Promise((resolve, reject) => { 133 | logger.info('Bundle >>> history'); 134 | 135 | // Common search params 136 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 137 | 138 | // Search Result params 139 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 140 | 141 | // Resource Specific params 142 | let composition = args['composition']; 143 | let identifier = args['identifier']; 144 | let message = args['message']; 145 | let type = args['type']; 146 | 147 | // TODO: Build query from Parameters 148 | 149 | // TODO: Query database 150 | 151 | let Bundle = getBundle(base_version); 152 | 153 | // Cast all results to Bundle Class 154 | let bundle_resource = new Bundle(); 155 | 156 | // Return Array 157 | resolve([bundle_resource]); 158 | }); 159 | 160 | module.exports.historyById = (args, context, logger) => new Promise((resolve, reject) => { 161 | logger.info('Bundle >>> historyById'); 162 | 163 | // Common search params 164 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 165 | 166 | // Search Result params 167 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 168 | 169 | // Resource Specific params 170 | let composition = args['composition']; 171 | let identifier = args['identifier']; 172 | let message = args['message']; 173 | let type = args['type']; 174 | 175 | // TODO: Build query from Parameters 176 | 177 | // TODO: Query database 178 | 179 | let Bundle = getBundle(base_version); 180 | 181 | // Cast all results to Bundle Class 182 | let bundle_resource = new Bundle(); 183 | 184 | // Return Array 185 | resolve([bundle_resource]); 186 | }); 187 | 188 | -------------------------------------------------------------------------------- /src/services/flag/flag.service.js: -------------------------------------------------------------------------------- 1 | /*eslint no-unused-vars: "warn"*/ 2 | 3 | const { RESOURCES } = require('@asymmetrik/node-fhir-server-core').constants; 4 | const FHIRServer = require('@asymmetrik/node-fhir-server-core'); 5 | 6 | let getFlag = (base_version) => { 7 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.FLAG));}; 8 | 9 | let getMeta = (base_version) => { 10 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.META));}; 11 | 12 | module.exports.search = (args, context, logger) => new Promise((resolve, reject) => { 13 | logger.info('Flag >>> search'); 14 | 15 | // Common search params 16 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 17 | 18 | // Search Result params 19 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 20 | 21 | // Resource Specific params 22 | let author = args['author']; 23 | let date = args['date']; 24 | let encounter = args['encounter']; 25 | let identifier = args['identifier']; 26 | let patient = args['patient']; 27 | let subject = args['subject']; 28 | 29 | // TODO: Build query from Parameters 30 | 31 | // TODO: Query database 32 | 33 | let Flag = getFlag(base_version); 34 | 35 | // Cast all results to Flag Class 36 | let flag_resource = new Flag(); 37 | // TODO: Set data with constructor or setter methods 38 | flag_resource.id = 'test id'; 39 | 40 | // Return Array 41 | resolve([flag_resource]); 42 | }); 43 | 44 | module.exports.searchById = (args, context, logger) => new Promise((resolve, reject) => { 45 | logger.info('Flag >>> searchById'); 46 | 47 | let { base_version, id } = args; 48 | 49 | let Flag = getFlag(base_version); 50 | 51 | // TODO: Build query from Parameters 52 | 53 | // TODO: Query database 54 | 55 | // Cast result to Flag Class 56 | let flag_resource = new Flag(); 57 | // TODO: Set data with constructor or setter methods 58 | flag_resource.id = 'test id'; 59 | 60 | // Return resource class 61 | // resolve(flag_resource); 62 | resolve(); 63 | }); 64 | 65 | module.exports.create = (args, context, logger) => new Promise((resolve, reject) => { 66 | logger.info('Flag >>> create'); 67 | 68 | let { base_version, id, resource } = args; 69 | 70 | let Flag = getFlag(base_version); 71 | let Meta = getMeta(base_version); 72 | 73 | // TODO: determine if client/server sets ID 74 | 75 | // Cast resource to Flag Class 76 | let flag_resource = new Flag(resource); 77 | flag_resource.meta = new Meta(); 78 | // TODO: set meta info 79 | 80 | // TODO: save record to database 81 | 82 | // Return Id 83 | resolve({ id: flag_resource.id }); 84 | }); 85 | 86 | module.exports.update = (args, context, logger) => new Promise((resolve, reject) => { 87 | logger.info('Flag >>> update'); 88 | 89 | let { base_version, id, resource } = args; 90 | 91 | let Flag = getFlag(base_version); 92 | let Meta = getMeta(base_version); 93 | 94 | // Cast resource to Flag Class 95 | let flag_resource = new Flag(resource); 96 | flag_resource.meta = new Meta(); 97 | // TODO: set meta info, increment meta ID 98 | 99 | // TODO: save record to database 100 | 101 | // Return id, if recorded was created or updated, new meta version id 102 | resolve({ id: flag_resource.id, created: false, resource_version: flag_resource.meta.versionId }); 103 | }); 104 | 105 | module.exports.remove = (args, context, logger) => new Promise((resolve, reject) => { 106 | logger.info('Flag >>> remove'); 107 | 108 | let { id } = args; 109 | 110 | // TODO: delete record in database (soft/hard) 111 | 112 | // Return number of records deleted 113 | resolve({ deleted: 0 }); 114 | }); 115 | 116 | module.exports.searchByVersionId = (args, context, logger) => new Promise((resolve, reject) => { 117 | logger.info('Flag >>> searchByVersionId'); 118 | 119 | let { base_version, id, version_id } = args; 120 | 121 | let Flag = getFlag(base_version); 122 | 123 | // TODO: Build query from Parameters 124 | 125 | // TODO: Query database 126 | 127 | // Cast result to Flag Class 128 | let flag_resource = new Flag(); 129 | 130 | // Return resource class 131 | resolve(flag_resource); 132 | }); 133 | 134 | module.exports.history = (args, context, logger) => new Promise((resolve, reject) => { 135 | logger.info('Flag >>> history'); 136 | 137 | // Common search params 138 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 139 | 140 | // Search Result params 141 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 142 | 143 | // Resource Specific params 144 | let author = args['author']; 145 | let date = args['date']; 146 | let encounter = args['encounter']; 147 | let identifier = args['identifier']; 148 | let patient = args['patient']; 149 | let subject = args['subject']; 150 | 151 | // TODO: Build query from Parameters 152 | 153 | // TODO: Query database 154 | 155 | let Flag = getFlag(base_version); 156 | 157 | // Cast all results to Flag Class 158 | let flag_resource = new Flag(); 159 | 160 | // Return Array 161 | resolve([flag_resource]); 162 | }); 163 | 164 | module.exports.historyById = (args, context, logger) => new Promise((resolve, reject) => { 165 | logger.info('Flag >>> historyById'); 166 | 167 | // Common search params 168 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 169 | 170 | // Search Result params 171 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 172 | 173 | // Resource Specific params 174 | let author = args['author']; 175 | let date = args['date']; 176 | let encounter = args['encounter']; 177 | let identifier = args['identifier']; 178 | let patient = args['patient']; 179 | let subject = args['subject']; 180 | 181 | // TODO: Build query from Parameters 182 | 183 | // TODO: Query database 184 | 185 | let Flag = getFlag(base_version); 186 | 187 | // Cast all results to Flag Class 188 | let flag_resource = new Flag(); 189 | 190 | // Return Array 191 | resolve([flag_resource]); 192 | }); 193 | 194 | -------------------------------------------------------------------------------- /src/services/basic/basic.service.js: -------------------------------------------------------------------------------- 1 | /*eslint no-unused-vars: "warn"*/ 2 | 3 | const { RESOURCES } = require('@asymmetrik/node-fhir-server-core').constants; 4 | const FHIRServer = require('@asymmetrik/node-fhir-server-core'); 5 | 6 | let getBasic = (base_version) => { 7 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.BASIC));}; 8 | 9 | let getMeta = (base_version) => { 10 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.META));}; 11 | 12 | module.exports.search = (args, context, logger) => new Promise((resolve, reject) => { 13 | logger.info('Basic >>> search'); 14 | 15 | // Common search params 16 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 17 | 18 | // Search Result params 19 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 20 | 21 | // Resource Specific params 22 | let author = args['author']; 23 | let code = args['code']; 24 | let created = args['created']; 25 | let identifier = args['identifier']; 26 | let patient = args['patient']; 27 | let subject = args['subject']; 28 | 29 | // TODO: Build query from Parameters 30 | 31 | // TODO: Query database 32 | 33 | let Basic = getBasic(base_version); 34 | 35 | // Cast all results to Basic Class 36 | let basic_resource = new Basic(); 37 | // TODO: Set data with constructor or setter methods 38 | basic_resource.id = 'test id'; 39 | 40 | // Return Array 41 | resolve([basic_resource]); 42 | }); 43 | 44 | module.exports.searchById = (args, context, logger) => new Promise((resolve, reject) => { 45 | logger.info('Basic >>> searchById'); 46 | 47 | let { base_version, id } = args; 48 | 49 | let Basic = getBasic(base_version); 50 | 51 | // TODO: Build query from Parameters 52 | 53 | // TODO: Query database 54 | 55 | // Cast result to Basic Class 56 | let basic_resource = new Basic(); 57 | // TODO: Set data with constructor or setter methods 58 | basic_resource.id = 'test id'; 59 | 60 | // Return resource class 61 | // resolve(basic_resource); 62 | resolve(); 63 | }); 64 | 65 | module.exports.create = (args, context, logger) => new Promise((resolve, reject) => { 66 | logger.info('Basic >>> create'); 67 | 68 | let { base_version, id, resource } = args; 69 | 70 | let Basic = getBasic(base_version); 71 | let Meta = getMeta(base_version); 72 | 73 | // TODO: determine if client/server sets ID 74 | 75 | // Cast resource to Basic Class 76 | let basic_resource = new Basic(resource); 77 | basic_resource.meta = new Meta(); 78 | // TODO: set meta info 79 | 80 | // TODO: save record to database 81 | 82 | // Return Id 83 | resolve({ id: basic_resource.id }); 84 | }); 85 | 86 | module.exports.update = (args, context, logger) => new Promise((resolve, reject) => { 87 | logger.info('Basic >>> update'); 88 | 89 | let { base_version, id, resource } = args; 90 | 91 | let Basic = getBasic(base_version); 92 | let Meta = getMeta(base_version); 93 | 94 | // Cast resource to Basic Class 95 | let basic_resource = new Basic(resource); 96 | basic_resource.meta = new Meta(); 97 | // TODO: set meta info, increment meta ID 98 | 99 | // TODO: save record to database 100 | 101 | // Return id, if recorded was created or updated, new meta version id 102 | resolve({ id: basic_resource.id, created: false, resource_version: basic_resource.meta.versionId }); 103 | }); 104 | 105 | module.exports.remove = (args, context, logger) => new Promise((resolve, reject) => { 106 | logger.info('Basic >>> remove'); 107 | 108 | let { id } = args; 109 | 110 | // TODO: delete record in database (soft/hard) 111 | 112 | // Return number of records deleted 113 | resolve({ deleted: 0 }); 114 | }); 115 | 116 | module.exports.searchByVersionId = (args, context, logger) => new Promise((resolve, reject) => { 117 | logger.info('Basic >>> searchByVersionId'); 118 | 119 | let { base_version, id, version_id } = args; 120 | 121 | let Basic = getBasic(base_version); 122 | 123 | // TODO: Build query from Parameters 124 | 125 | // TODO: Query database 126 | 127 | // Cast result to Basic Class 128 | let basic_resource = new Basic(); 129 | 130 | // Return resource class 131 | resolve(basic_resource); 132 | }); 133 | 134 | module.exports.history = (args, context, logger) => new Promise((resolve, reject) => { 135 | logger.info('Basic >>> history'); 136 | 137 | // Common search params 138 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 139 | 140 | // Search Result params 141 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 142 | 143 | // Resource Specific params 144 | let author = args['author']; 145 | let code = args['code']; 146 | let created = args['created']; 147 | let identifier = args['identifier']; 148 | let patient = args['patient']; 149 | let subject = args['subject']; 150 | 151 | // TODO: Build query from Parameters 152 | 153 | // TODO: Query database 154 | 155 | let Basic = getBasic(base_version); 156 | 157 | // Cast all results to Basic Class 158 | let basic_resource = new Basic(); 159 | 160 | // Return Array 161 | resolve([basic_resource]); 162 | }); 163 | 164 | module.exports.historyById = (args, context, logger) => new Promise((resolve, reject) => { 165 | logger.info('Basic >>> historyById'); 166 | 167 | // Common search params 168 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 169 | 170 | // Search Result params 171 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 172 | 173 | // Resource Specific params 174 | let author = args['author']; 175 | let code = args['code']; 176 | let created = args['created']; 177 | let identifier = args['identifier']; 178 | let patient = args['patient']; 179 | let subject = args['subject']; 180 | 181 | // TODO: Build query from Parameters 182 | 183 | // TODO: Query database 184 | 185 | let Basic = getBasic(base_version); 186 | 187 | // Cast all results to Basic Class 188 | let basic_resource = new Basic(); 189 | 190 | // Return Array 191 | resolve([basic_resource]); 192 | }); 193 | 194 | -------------------------------------------------------------------------------- /src/services/schedule/schedule.service.js: -------------------------------------------------------------------------------- 1 | /*eslint no-unused-vars: "warn"*/ 2 | 3 | const { RESOURCES } = require('@asymmetrik/node-fhir-server-core').constants; 4 | const FHIRServer = require('@asymmetrik/node-fhir-server-core'); 5 | 6 | let getSchedule = (base_version) => { 7 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.SCHEDULE));}; 8 | 9 | let getMeta = (base_version) => { 10 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.META));}; 11 | 12 | module.exports.search = (args, context, logger) => new Promise((resolve, reject) => { 13 | logger.info('Schedule >>> search'); 14 | 15 | // Common search params 16 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 17 | 18 | // Search Result params 19 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 20 | 21 | // Resource Specific params 22 | let active = args['active']; 23 | let actor = args['actor']; 24 | let date = args['date']; 25 | let identifier = args['identifier']; 26 | let type = args['type']; 27 | 28 | // TODO: Build query from Parameters 29 | 30 | // TODO: Query database 31 | 32 | let Schedule = getSchedule(base_version); 33 | 34 | // Cast all results to Schedule Class 35 | let schedule_resource = new Schedule(); 36 | // TODO: Set data with constructor or setter methods 37 | schedule_resource.id = 'test id'; 38 | 39 | // Return Array 40 | resolve([schedule_resource]); 41 | }); 42 | 43 | module.exports.searchById = (args, context, logger) => new Promise((resolve, reject) => { 44 | logger.info('Schedule >>> searchById'); 45 | 46 | let { base_version, id } = args; 47 | 48 | let Schedule = getSchedule(base_version); 49 | 50 | // TODO: Build query from Parameters 51 | 52 | // TODO: Query database 53 | 54 | // Cast result to Schedule Class 55 | let schedule_resource = new Schedule(); 56 | // TODO: Set data with constructor or setter methods 57 | schedule_resource.id = 'test id'; 58 | 59 | // Return resource class 60 | // resolve(schedule_resource); 61 | resolve(); 62 | }); 63 | 64 | module.exports.create = (args, context, logger) => new Promise((resolve, reject) => { 65 | logger.info('Schedule >>> create'); 66 | 67 | let { base_version, id, resource } = args; 68 | 69 | let Schedule = getSchedule(base_version); 70 | let Meta = getMeta(base_version); 71 | 72 | // TODO: determine if client/server sets ID 73 | 74 | // Cast resource to Schedule Class 75 | let schedule_resource = new Schedule(resource); 76 | schedule_resource.meta = new Meta(); 77 | // TODO: set meta info 78 | 79 | // TODO: save record to database 80 | 81 | // Return Id 82 | resolve({ id: schedule_resource.id }); 83 | }); 84 | 85 | module.exports.update = (args, context, logger) => new Promise((resolve, reject) => { 86 | logger.info('Schedule >>> update'); 87 | 88 | let { base_version, id, resource } = args; 89 | 90 | let Schedule = getSchedule(base_version); 91 | let Meta = getMeta(base_version); 92 | 93 | // Cast resource to Schedule Class 94 | let schedule_resource = new Schedule(resource); 95 | schedule_resource.meta = new Meta(); 96 | // TODO: set meta info, increment meta ID 97 | 98 | // TODO: save record to database 99 | 100 | // Return id, if recorded was created or updated, new meta version id 101 | resolve({ id: schedule_resource.id, created: false, resource_version: schedule_resource.meta.versionId }); 102 | }); 103 | 104 | module.exports.remove = (args, context, logger) => new Promise((resolve, reject) => { 105 | logger.info('Schedule >>> remove'); 106 | 107 | let { id } = args; 108 | 109 | // TODO: delete record in database (soft/hard) 110 | 111 | // Return number of records deleted 112 | resolve({ deleted: 0 }); 113 | }); 114 | 115 | module.exports.searchByVersionId = (args, context, logger) => new Promise((resolve, reject) => { 116 | logger.info('Schedule >>> searchByVersionId'); 117 | 118 | let { base_version, id, version_id } = args; 119 | 120 | let Schedule = getSchedule(base_version); 121 | 122 | // TODO: Build query from Parameters 123 | 124 | // TODO: Query database 125 | 126 | // Cast result to Schedule Class 127 | let schedule_resource = new Schedule(); 128 | 129 | // Return resource class 130 | resolve(schedule_resource); 131 | }); 132 | 133 | module.exports.history = (args, context, logger) => new Promise((resolve, reject) => { 134 | logger.info('Schedule >>> history'); 135 | 136 | // Common search params 137 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 138 | 139 | // Search Result params 140 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 141 | 142 | // Resource Specific params 143 | let active = args['active']; 144 | let actor = args['actor']; 145 | let date = args['date']; 146 | let identifier = args['identifier']; 147 | let type = args['type']; 148 | 149 | // TODO: Build query from Parameters 150 | 151 | // TODO: Query database 152 | 153 | let Schedule = getSchedule(base_version); 154 | 155 | // Cast all results to Schedule Class 156 | let schedule_resource = new Schedule(); 157 | 158 | // Return Array 159 | resolve([schedule_resource]); 160 | }); 161 | 162 | module.exports.historyById = (args, context, logger) => new Promise((resolve, reject) => { 163 | logger.info('Schedule >>> historyById'); 164 | 165 | // Common search params 166 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 167 | 168 | // Search Result params 169 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 170 | 171 | // Resource Specific params 172 | let active = args['active']; 173 | let actor = args['actor']; 174 | let date = args['date']; 175 | let identifier = args['identifier']; 176 | let type = args['type']; 177 | 178 | // TODO: Build query from Parameters 179 | 180 | // TODO: Query database 181 | 182 | let Schedule = getSchedule(base_version); 183 | 184 | // Cast all results to Schedule Class 185 | let schedule_resource = new Schedule(); 186 | 187 | // Return Array 188 | resolve([schedule_resource]); 189 | }); 190 | 191 | -------------------------------------------------------------------------------- /src/services/goal/goal.service.js: -------------------------------------------------------------------------------- 1 | /*eslint no-unused-vars: "warn"*/ 2 | 3 | const { RESOURCES } = require('@asymmetrik/node-fhir-server-core').constants; 4 | const FHIRServer = require('@asymmetrik/node-fhir-server-core'); 5 | 6 | let getGoal = (base_version) => { 7 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.GOAL));}; 8 | 9 | let getMeta = (base_version) => { 10 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.META));}; 11 | 12 | module.exports.search = (args, context, logger) => new Promise((resolve, reject) => { 13 | logger.info('Goal >>> search'); 14 | 15 | // Common search params 16 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 17 | 18 | // Search Result params 19 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 20 | 21 | // Resource Specific params 22 | let category = args['category']; 23 | let identifier = args['identifier']; 24 | let patient = args['patient']; 25 | let start_date = args['start-date']; 26 | let status = args['status']; 27 | let subject = args['subject']; 28 | let target_date = args['target-date']; 29 | 30 | // TODO: Build query from Parameters 31 | 32 | // TODO: Query database 33 | 34 | let Goal = getGoal(base_version); 35 | 36 | // Cast all results to Goal Class 37 | let goal_resource = new Goal(); 38 | // TODO: Set data with constructor or setter methods 39 | goal_resource.id = 'test id'; 40 | 41 | // Return Array 42 | resolve([goal_resource]); 43 | }); 44 | 45 | module.exports.searchById = (args, context, logger) => new Promise((resolve, reject) => { 46 | logger.info('Goal >>> searchById'); 47 | 48 | let { base_version, id } = args; 49 | 50 | let Goal = getGoal(base_version); 51 | 52 | // TODO: Build query from Parameters 53 | 54 | // TODO: Query database 55 | 56 | // Cast result to Goal Class 57 | let goal_resource = new Goal(); 58 | // TODO: Set data with constructor or setter methods 59 | goal_resource.id = 'test id'; 60 | 61 | // Return resource class 62 | // resolve(goal_resource); 63 | resolve(); 64 | }); 65 | 66 | module.exports.create = (args, context, logger) => new Promise((resolve, reject) => { 67 | logger.info('Goal >>> create'); 68 | 69 | let { base_version, id, resource } = args; 70 | 71 | let Goal = getGoal(base_version); 72 | let Meta = getMeta(base_version); 73 | 74 | // TODO: determine if client/server sets ID 75 | 76 | // Cast resource to Goal Class 77 | let goal_resource = new Goal(resource); 78 | goal_resource.meta = new Meta(); 79 | // TODO: set meta info 80 | 81 | // TODO: save record to database 82 | 83 | // Return Id 84 | resolve({ id: goal_resource.id }); 85 | }); 86 | 87 | module.exports.update = (args, context, logger) => new Promise((resolve, reject) => { 88 | logger.info('Goal >>> update'); 89 | 90 | let { base_version, id, resource } = args; 91 | 92 | let Goal = getGoal(base_version); 93 | let Meta = getMeta(base_version); 94 | 95 | // Cast resource to Goal Class 96 | let goal_resource = new Goal(resource); 97 | goal_resource.meta = new Meta(); 98 | // TODO: set meta info, increment meta ID 99 | 100 | // TODO: save record to database 101 | 102 | // Return id, if recorded was created or updated, new meta version id 103 | resolve({ id: goal_resource.id, created: false, resource_version: goal_resource.meta.versionId }); 104 | }); 105 | 106 | module.exports.remove = (args, context, logger) => new Promise((resolve, reject) => { 107 | logger.info('Goal >>> remove'); 108 | 109 | let { id } = args; 110 | 111 | // TODO: delete record in database (soft/hard) 112 | 113 | // Return number of records deleted 114 | resolve({ deleted: 0 }); 115 | }); 116 | 117 | module.exports.searchByVersionId = (args, context, logger) => new Promise((resolve, reject) => { 118 | logger.info('Goal >>> searchByVersionId'); 119 | 120 | let { base_version, id, version_id } = args; 121 | 122 | let Goal = getGoal(base_version); 123 | 124 | // TODO: Build query from Parameters 125 | 126 | // TODO: Query database 127 | 128 | // Cast result to Goal Class 129 | let goal_resource = new Goal(); 130 | 131 | // Return resource class 132 | resolve(goal_resource); 133 | }); 134 | 135 | module.exports.history = (args, context, logger) => new Promise((resolve, reject) => { 136 | logger.info('Goal >>> history'); 137 | 138 | // Common search params 139 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 140 | 141 | // Search Result params 142 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 143 | 144 | // Resource Specific params 145 | let category = args['category']; 146 | let identifier = args['identifier']; 147 | let patient = args['patient']; 148 | let start_date = args['start-date']; 149 | let status = args['status']; 150 | let subject = args['subject']; 151 | let target_date = args['target-date']; 152 | 153 | // TODO: Build query from Parameters 154 | 155 | // TODO: Query database 156 | 157 | let Goal = getGoal(base_version); 158 | 159 | // Cast all results to Goal Class 160 | let goal_resource = new Goal(); 161 | 162 | // Return Array 163 | resolve([goal_resource]); 164 | }); 165 | 166 | module.exports.historyById = (args, context, logger) => new Promise((resolve, reject) => { 167 | logger.info('Goal >>> historyById'); 168 | 169 | // Common search params 170 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 171 | 172 | // Search Result params 173 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 174 | 175 | // Resource Specific params 176 | let category = args['category']; 177 | let identifier = args['identifier']; 178 | let patient = args['patient']; 179 | let start_date = args['start-date']; 180 | let status = args['status']; 181 | let subject = args['subject']; 182 | let target_date = args['target-date']; 183 | 184 | // TODO: Build query from Parameters 185 | 186 | // TODO: Query database 187 | 188 | let Goal = getGoal(base_version); 189 | 190 | // Cast all results to Goal Class 191 | let goal_resource = new Goal(); 192 | 193 | // Return Array 194 | resolve([goal_resource]); 195 | }); 196 | 197 | -------------------------------------------------------------------------------- /src/services/endpoint/endpoint.service.js: -------------------------------------------------------------------------------- 1 | /*eslint no-unused-vars: "warn"*/ 2 | 3 | const { RESOURCES } = require('@asymmetrik/node-fhir-server-core').constants; 4 | const FHIRServer = require('@asymmetrik/node-fhir-server-core'); 5 | 6 | let getEndpoint = (base_version) => { 7 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.ENDPOINT));}; 8 | 9 | let getMeta = (base_version) => { 10 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.META));}; 11 | 12 | module.exports.search = (args, context, logger) => new Promise((resolve, reject) => { 13 | logger.info('Endpoint >>> search'); 14 | 15 | // Common search params 16 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 17 | 18 | // Search Result params 19 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 20 | 21 | // Resource Specific params 22 | let connection_type = args['connection-type']; 23 | let identifier = args['identifier']; 24 | let name = args['name']; 25 | let organization = args['organization']; 26 | let payload_type = args['payload-type']; 27 | let status = args['status']; 28 | 29 | // TODO: Build query from Parameters 30 | 31 | // TODO: Query database 32 | 33 | let Endpoint = getEndpoint(base_version); 34 | 35 | // Cast all results to Endpoint Class 36 | let endpoint_resource = new Endpoint(); 37 | // TODO: Set data with constructor or setter methods 38 | endpoint_resource.id = 'test id'; 39 | 40 | // Return Array 41 | resolve([endpoint_resource]); 42 | }); 43 | 44 | module.exports.searchById = (args, context, logger) => new Promise((resolve, reject) => { 45 | logger.info('Endpoint >>> searchById'); 46 | 47 | let { base_version, id } = args; 48 | 49 | let Endpoint = getEndpoint(base_version); 50 | 51 | // TODO: Build query from Parameters 52 | 53 | // TODO: Query database 54 | 55 | // Cast result to Endpoint Class 56 | let endpoint_resource = new Endpoint(); 57 | // TODO: Set data with constructor or setter methods 58 | endpoint_resource.id = 'test id'; 59 | 60 | // Return resource class 61 | // resolve(endpoint_resource); 62 | resolve(); 63 | }); 64 | 65 | module.exports.create = (args, context, logger) => new Promise((resolve, reject) => { 66 | logger.info('Endpoint >>> create'); 67 | 68 | let { base_version, id, resource } = args; 69 | 70 | let Endpoint = getEndpoint(base_version); 71 | let Meta = getMeta(base_version); 72 | 73 | // TODO: determine if client/server sets ID 74 | 75 | // Cast resource to Endpoint Class 76 | let endpoint_resource = new Endpoint(resource); 77 | endpoint_resource.meta = new Meta(); 78 | // TODO: set meta info 79 | 80 | // TODO: save record to database 81 | 82 | // Return Id 83 | resolve({ id: endpoint_resource.id }); 84 | }); 85 | 86 | module.exports.update = (args, context, logger) => new Promise((resolve, reject) => { 87 | logger.info('Endpoint >>> update'); 88 | 89 | let { base_version, id, resource } = args; 90 | 91 | let Endpoint = getEndpoint(base_version); 92 | let Meta = getMeta(base_version); 93 | 94 | // Cast resource to Endpoint Class 95 | let endpoint_resource = new Endpoint(resource); 96 | endpoint_resource.meta = new Meta(); 97 | // TODO: set meta info, increment meta ID 98 | 99 | // TODO: save record to database 100 | 101 | // Return id, if recorded was created or updated, new meta version id 102 | resolve({ id: endpoint_resource.id, created: false, resource_version: endpoint_resource.meta.versionId }); 103 | }); 104 | 105 | module.exports.remove = (args, context, logger) => new Promise((resolve, reject) => { 106 | logger.info('Endpoint >>> remove'); 107 | 108 | let { id } = args; 109 | 110 | // TODO: delete record in database (soft/hard) 111 | 112 | // Return number of records deleted 113 | resolve({ deleted: 0 }); 114 | }); 115 | 116 | module.exports.searchByVersionId = (args, context, logger) => new Promise((resolve, reject) => { 117 | logger.info('Endpoint >>> searchByVersionId'); 118 | 119 | let { base_version, id, version_id } = args; 120 | 121 | let Endpoint = getEndpoint(base_version); 122 | 123 | // TODO: Build query from Parameters 124 | 125 | // TODO: Query database 126 | 127 | // Cast result to Endpoint Class 128 | let endpoint_resource = new Endpoint(); 129 | 130 | // Return resource class 131 | resolve(endpoint_resource); 132 | }); 133 | 134 | module.exports.history = (args, context, logger) => new Promise((resolve, reject) => { 135 | logger.info('Endpoint >>> history'); 136 | 137 | // Common search params 138 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 139 | 140 | // Search Result params 141 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 142 | 143 | // Resource Specific params 144 | let connection_type = args['connection-type']; 145 | let identifier = args['identifier']; 146 | let name = args['name']; 147 | let organization = args['organization']; 148 | let payload_type = args['payload-type']; 149 | let status = args['status']; 150 | 151 | // TODO: Build query from Parameters 152 | 153 | // TODO: Query database 154 | 155 | let Endpoint = getEndpoint(base_version); 156 | 157 | // Cast all results to Endpoint Class 158 | let endpoint_resource = new Endpoint(); 159 | 160 | // Return Array 161 | resolve([endpoint_resource]); 162 | }); 163 | 164 | module.exports.historyById = (args, context, logger) => new Promise((resolve, reject) => { 165 | logger.info('Endpoint >>> historyById'); 166 | 167 | // Common search params 168 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 169 | 170 | // Search Result params 171 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 172 | 173 | // Resource Specific params 174 | let connection_type = args['connection-type']; 175 | let identifier = args['identifier']; 176 | let name = args['name']; 177 | let organization = args['organization']; 178 | let payload_type = args['payload-type']; 179 | let status = args['status']; 180 | 181 | // TODO: Build query from Parameters 182 | 183 | // TODO: Query database 184 | 185 | let Endpoint = getEndpoint(base_version); 186 | 187 | // Cast all results to Endpoint Class 188 | let endpoint_resource = new Endpoint(); 189 | 190 | // Return Array 191 | resolve([endpoint_resource]); 192 | }); 193 | 194 | -------------------------------------------------------------------------------- /src/services/devicemetric/devicemetric.service.js: -------------------------------------------------------------------------------- 1 | /*eslint no-unused-vars: "warn"*/ 2 | 3 | const { RESOURCES } = require('@asymmetrik/node-fhir-server-core').constants; 4 | const FHIRServer = require('@asymmetrik/node-fhir-server-core'); 5 | 6 | let getDeviceMetric = (base_version) => { 7 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.DEVICEMETRIC));}; 8 | 9 | let getMeta = (base_version) => { 10 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.META));}; 11 | 12 | module.exports.search = (args, context, logger) => new Promise((resolve, reject) => { 13 | logger.info('DeviceMetric >>> search'); 14 | 15 | // Common search params 16 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 17 | 18 | // Search Result params 19 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 20 | 21 | // Resource Specific params 22 | let category = args['category']; 23 | let identifier = args['identifier']; 24 | let parent = args['parent']; 25 | let source = args['source']; 26 | let type = args['type']; 27 | 28 | // TODO: Build query from Parameters 29 | 30 | // TODO: Query database 31 | 32 | let DeviceMetric = getDeviceMetric(base_version); 33 | 34 | // Cast all results to DeviceMetric Class 35 | let devicemetric_resource = new DeviceMetric(); 36 | // TODO: Set data with constructor or setter methods 37 | devicemetric_resource.id = 'test id'; 38 | 39 | // Return Array 40 | resolve([devicemetric_resource]); 41 | }); 42 | 43 | module.exports.searchById = (args, context, logger) => new Promise((resolve, reject) => { 44 | logger.info('DeviceMetric >>> searchById'); 45 | 46 | let { base_version, id } = args; 47 | 48 | let DeviceMetric = getDeviceMetric(base_version); 49 | 50 | // TODO: Build query from Parameters 51 | 52 | // TODO: Query database 53 | 54 | // Cast result to DeviceMetric Class 55 | let devicemetric_resource = new DeviceMetric(); 56 | // TODO: Set data with constructor or setter methods 57 | devicemetric_resource.id = 'test id'; 58 | 59 | // Return resource class 60 | // resolve(devicemetric_resource); 61 | resolve(); 62 | }); 63 | 64 | module.exports.create = (args, context, logger) => new Promise((resolve, reject) => { 65 | logger.info('DeviceMetric >>> create'); 66 | 67 | let { base_version, id, resource } = args; 68 | 69 | let DeviceMetric = getDeviceMetric(base_version); 70 | let Meta = getMeta(base_version); 71 | 72 | // TODO: determine if client/server sets ID 73 | 74 | // Cast resource to DeviceMetric Class 75 | let devicemetric_resource = new DeviceMetric(resource); 76 | devicemetric_resource.meta = new Meta(); 77 | // TODO: set meta info 78 | 79 | // TODO: save record to database 80 | 81 | // Return Id 82 | resolve({ id: devicemetric_resource.id }); 83 | }); 84 | 85 | module.exports.update = (args, context, logger) => new Promise((resolve, reject) => { 86 | logger.info('DeviceMetric >>> update'); 87 | 88 | let { base_version, id, resource } = args; 89 | 90 | let DeviceMetric = getDeviceMetric(base_version); 91 | let Meta = getMeta(base_version); 92 | 93 | // Cast resource to DeviceMetric Class 94 | let devicemetric_resource = new DeviceMetric(resource); 95 | devicemetric_resource.meta = new Meta(); 96 | // TODO: set meta info, increment meta ID 97 | 98 | // TODO: save record to database 99 | 100 | // Return id, if recorded was created or updated, new meta version id 101 | resolve({ id: devicemetric_resource.id, created: false, resource_version: devicemetric_resource.meta.versionId }); 102 | }); 103 | 104 | module.exports.remove = (args, context, logger) => new Promise((resolve, reject) => { 105 | logger.info('DeviceMetric >>> remove'); 106 | 107 | let { id } = args; 108 | 109 | // TODO: delete record in database (soft/hard) 110 | 111 | // Return number of records deleted 112 | resolve({ deleted: 0 }); 113 | }); 114 | 115 | module.exports.searchByVersionId = (args, context, logger) => new Promise((resolve, reject) => { 116 | logger.info('DeviceMetric >>> searchByVersionId'); 117 | 118 | let { base_version, id, version_id } = args; 119 | 120 | let DeviceMetric = getDeviceMetric(base_version); 121 | 122 | // TODO: Build query from Parameters 123 | 124 | // TODO: Query database 125 | 126 | // Cast result to DeviceMetric Class 127 | let devicemetric_resource = new DeviceMetric(); 128 | 129 | // Return resource class 130 | resolve(devicemetric_resource); 131 | }); 132 | 133 | module.exports.history = (args, context, logger) => new Promise((resolve, reject) => { 134 | logger.info('DeviceMetric >>> history'); 135 | 136 | // Common search params 137 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 138 | 139 | // Search Result params 140 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 141 | 142 | // Resource Specific params 143 | let category = args['category']; 144 | let identifier = args['identifier']; 145 | let parent = args['parent']; 146 | let source = args['source']; 147 | let type = args['type']; 148 | 149 | // TODO: Build query from Parameters 150 | 151 | // TODO: Query database 152 | 153 | let DeviceMetric = getDeviceMetric(base_version); 154 | 155 | // Cast all results to DeviceMetric Class 156 | let devicemetric_resource = new DeviceMetric(); 157 | 158 | // Return Array 159 | resolve([devicemetric_resource]); 160 | }); 161 | 162 | module.exports.historyById = (args, context, logger) => new Promise((resolve, reject) => { 163 | logger.info('DeviceMetric >>> historyById'); 164 | 165 | // Common search params 166 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 167 | 168 | // Search Result params 169 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 170 | 171 | // Resource Specific params 172 | let category = args['category']; 173 | let identifier = args['identifier']; 174 | let parent = args['parent']; 175 | let source = args['source']; 176 | let type = args['type']; 177 | 178 | // TODO: Build query from Parameters 179 | 180 | // TODO: Query database 181 | 182 | let DeviceMetric = getDeviceMetric(base_version); 183 | 184 | // Cast all results to DeviceMetric Class 185 | let devicemetric_resource = new DeviceMetric(); 186 | 187 | // Return Array 188 | resolve([devicemetric_resource]); 189 | }); 190 | 191 | -------------------------------------------------------------------------------- /src/services/sequence/sequence.service.js: -------------------------------------------------------------------------------- 1 | /*eslint no-unused-vars: "warn"*/ 2 | 3 | const { RESOURCES } = require('@asymmetrik/node-fhir-server-core').constants; 4 | const FHIRServer = require('@asymmetrik/node-fhir-server-core'); 5 | 6 | let getSequence = (base_version) => { 7 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.SEQUENCE));}; 8 | 9 | let getMeta = (base_version) => { 10 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.META));}; 11 | 12 | module.exports.search = (args, context, logger) => new Promise((resolve, reject) => { 13 | logger.info('Sequence >>> search'); 14 | 15 | // Common search params 16 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 17 | 18 | // Search Result params 19 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 20 | 21 | // Resource Specific params 22 | let chromosome = args['chromosome']; 23 | let coordinate = args['coordinate']; 24 | let end = args['end']; 25 | let identifier = args['identifier']; 26 | let patient = args['patient']; 27 | let start = args['start']; 28 | let type = args['type']; 29 | 30 | // TODO: Build query from Parameters 31 | 32 | // TODO: Query database 33 | 34 | let Sequence = getSequence(base_version); 35 | 36 | // Cast all results to Sequence Class 37 | let sequence_resource = new Sequence(); 38 | // TODO: Set data with constructor or setter methods 39 | sequence_resource.id = 'test id'; 40 | 41 | // Return Array 42 | resolve([sequence_resource]); 43 | }); 44 | 45 | module.exports.searchById = (args, context, logger) => new Promise((resolve, reject) => { 46 | logger.info('Sequence >>> searchById'); 47 | 48 | let { base_version, id } = args; 49 | 50 | let Sequence = getSequence(base_version); 51 | 52 | // TODO: Build query from Parameters 53 | 54 | // TODO: Query database 55 | 56 | // Cast result to Sequence Class 57 | let sequence_resource = new Sequence(); 58 | // TODO: Set data with constructor or setter methods 59 | sequence_resource.id = 'test id'; 60 | 61 | // Return resource class 62 | // resolve(sequence_resource); 63 | resolve(); 64 | }); 65 | 66 | module.exports.create = (args, context, logger) => new Promise((resolve, reject) => { 67 | logger.info('Sequence >>> create'); 68 | 69 | let { base_version, id, resource } = args; 70 | 71 | let Sequence = getSequence(base_version); 72 | let Meta = getMeta(base_version); 73 | 74 | // TODO: determine if client/server sets ID 75 | 76 | // Cast resource to Sequence Class 77 | let sequence_resource = new Sequence(resource); 78 | sequence_resource.meta = new Meta(); 79 | // TODO: set meta info 80 | 81 | // TODO: save record to database 82 | 83 | // Return Id 84 | resolve({ id: sequence_resource.id }); 85 | }); 86 | 87 | module.exports.update = (args, context, logger) => new Promise((resolve, reject) => { 88 | logger.info('Sequence >>> update'); 89 | 90 | let { base_version, id, resource } = args; 91 | 92 | let Sequence = getSequence(base_version); 93 | let Meta = getMeta(base_version); 94 | 95 | // Cast resource to Sequence Class 96 | let sequence_resource = new Sequence(resource); 97 | sequence_resource.meta = new Meta(); 98 | // TODO: set meta info, increment meta ID 99 | 100 | // TODO: save record to database 101 | 102 | // Return id, if recorded was created or updated, new meta version id 103 | resolve({ id: sequence_resource.id, created: false, resource_version: sequence_resource.meta.versionId }); 104 | }); 105 | 106 | module.exports.remove = (args, context, logger) => new Promise((resolve, reject) => { 107 | logger.info('Sequence >>> remove'); 108 | 109 | let { id } = args; 110 | 111 | // TODO: delete record in database (soft/hard) 112 | 113 | // Return number of records deleted 114 | resolve({ deleted: 0 }); 115 | }); 116 | 117 | module.exports.searchByVersionId = (args, context, logger) => new Promise((resolve, reject) => { 118 | logger.info('Sequence >>> searchByVersionId'); 119 | 120 | let { base_version, id, version_id } = args; 121 | 122 | let Sequence = getSequence(base_version); 123 | 124 | // TODO: Build query from Parameters 125 | 126 | // TODO: Query database 127 | 128 | // Cast result to Sequence Class 129 | let sequence_resource = new Sequence(); 130 | 131 | // Return resource class 132 | resolve(sequence_resource); 133 | }); 134 | 135 | module.exports.history = (args, context, logger) => new Promise((resolve, reject) => { 136 | logger.info('Sequence >>> history'); 137 | 138 | // Common search params 139 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 140 | 141 | // Search Result params 142 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 143 | 144 | // Resource Specific params 145 | let chromosome = args['chromosome']; 146 | let coordinate = args['coordinate']; 147 | let end = args['end']; 148 | let identifier = args['identifier']; 149 | let patient = args['patient']; 150 | let start = args['start']; 151 | let type = args['type']; 152 | 153 | // TODO: Build query from Parameters 154 | 155 | // TODO: Query database 156 | 157 | let Sequence = getSequence(base_version); 158 | 159 | // Cast all results to Sequence Class 160 | let sequence_resource = new Sequence(); 161 | 162 | // Return Array 163 | resolve([sequence_resource]); 164 | }); 165 | 166 | module.exports.historyById = (args, context, logger) => new Promise((resolve, reject) => { 167 | logger.info('Sequence >>> historyById'); 168 | 169 | // Common search params 170 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 171 | 172 | // Search Result params 173 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 174 | 175 | // Resource Specific params 176 | let chromosome = args['chromosome']; 177 | let coordinate = args['coordinate']; 178 | let end = args['end']; 179 | let identifier = args['identifier']; 180 | let patient = args['patient']; 181 | let start = args['start']; 182 | let type = args['type']; 183 | 184 | // TODO: Build query from Parameters 185 | 186 | // TODO: Query database 187 | 188 | let Sequence = getSequence(base_version); 189 | 190 | // Cast all results to Sequence Class 191 | let sequence_resource = new Sequence(); 192 | 193 | // Return Array 194 | resolve([sequence_resource]); 195 | }); 196 | 197 | -------------------------------------------------------------------------------- /src/services/testreport/testreport.service.js: -------------------------------------------------------------------------------- 1 | /*eslint no-unused-vars: "warn"*/ 2 | 3 | const { RESOURCES } = require('@asymmetrik/node-fhir-server-core').constants; 4 | const FHIRServer = require('@asymmetrik/node-fhir-server-core'); 5 | 6 | let getTestReport = (base_version) => { 7 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.TESTREPORT));}; 8 | 9 | let getMeta = (base_version) => { 10 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.META));}; 11 | 12 | module.exports.search = (args, context, logger) => new Promise((resolve, reject) => { 13 | logger.info('TestReport >>> search'); 14 | 15 | // Common search params 16 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 17 | 18 | // Search Result params 19 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 20 | 21 | // Resource Specific params 22 | let identifier = args['identifier']; 23 | let issued = args['issued']; 24 | let participant = args['participant']; 25 | let result = args['result']; 26 | let tester = args['tester']; 27 | let testscript = args['testscript']; 28 | 29 | // TODO: Build query from Parameters 30 | 31 | // TODO: Query database 32 | 33 | let TestReport = getTestReport(base_version); 34 | 35 | // Cast all results to TestReport Class 36 | let testreport_resource = new TestReport(); 37 | // TODO: Set data with constructor or setter methods 38 | testreport_resource.id = 'test id'; 39 | 40 | // Return Array 41 | resolve([testreport_resource]); 42 | }); 43 | 44 | module.exports.searchById = (args, context, logger) => new Promise((resolve, reject) => { 45 | logger.info('TestReport >>> searchById'); 46 | 47 | let { base_version, id } = args; 48 | 49 | let TestReport = getTestReport(base_version); 50 | 51 | // TODO: Build query from Parameters 52 | 53 | // TODO: Query database 54 | 55 | // Cast result to TestReport Class 56 | let testreport_resource = new TestReport(); 57 | // TODO: Set data with constructor or setter methods 58 | testreport_resource.id = 'test id'; 59 | 60 | // Return resource class 61 | // resolve(testreport_resource); 62 | resolve(); 63 | }); 64 | 65 | module.exports.create = (args, context, logger) => new Promise((resolve, reject) => { 66 | logger.info('TestReport >>> create'); 67 | 68 | let { base_version, id, resource } = args; 69 | 70 | let TestReport = getTestReport(base_version); 71 | let Meta = getMeta(base_version); 72 | 73 | // TODO: determine if client/server sets ID 74 | 75 | // Cast resource to TestReport Class 76 | let testreport_resource = new TestReport(resource); 77 | testreport_resource.meta = new Meta(); 78 | // TODO: set meta info 79 | 80 | // TODO: save record to database 81 | 82 | // Return Id 83 | resolve({ id: testreport_resource.id }); 84 | }); 85 | 86 | module.exports.update = (args, context, logger) => new Promise((resolve, reject) => { 87 | logger.info('TestReport >>> update'); 88 | 89 | let { base_version, id, resource } = args; 90 | 91 | let TestReport = getTestReport(base_version); 92 | let Meta = getMeta(base_version); 93 | 94 | // Cast resource to TestReport Class 95 | let testreport_resource = new TestReport(resource); 96 | testreport_resource.meta = new Meta(); 97 | // TODO: set meta info, increment meta ID 98 | 99 | // TODO: save record to database 100 | 101 | // Return id, if recorded was created or updated, new meta version id 102 | resolve({ id: testreport_resource.id, created: false, resource_version: testreport_resource.meta.versionId }); 103 | }); 104 | 105 | module.exports.remove = (args, context, logger) => new Promise((resolve, reject) => { 106 | logger.info('TestReport >>> remove'); 107 | 108 | let { id } = args; 109 | 110 | // TODO: delete record in database (soft/hard) 111 | 112 | // Return number of records deleted 113 | resolve({ deleted: 0 }); 114 | }); 115 | 116 | module.exports.searchByVersionId = (args, context, logger) => new Promise((resolve, reject) => { 117 | logger.info('TestReport >>> searchByVersionId'); 118 | 119 | let { base_version, id, version_id } = args; 120 | 121 | let TestReport = getTestReport(base_version); 122 | 123 | // TODO: Build query from Parameters 124 | 125 | // TODO: Query database 126 | 127 | // Cast result to TestReport Class 128 | let testreport_resource = new TestReport(); 129 | 130 | // Return resource class 131 | resolve(testreport_resource); 132 | }); 133 | 134 | module.exports.history = (args, context, logger) => new Promise((resolve, reject) => { 135 | logger.info('TestReport >>> history'); 136 | 137 | // Common search params 138 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 139 | 140 | // Search Result params 141 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 142 | 143 | // Resource Specific params 144 | let identifier = args['identifier']; 145 | let issued = args['issued']; 146 | let participant = args['participant']; 147 | let result = args['result']; 148 | let tester = args['tester']; 149 | let testscript = args['testscript']; 150 | 151 | // TODO: Build query from Parameters 152 | 153 | // TODO: Query database 154 | 155 | let TestReport = getTestReport(base_version); 156 | 157 | // Cast all results to TestReport Class 158 | let testreport_resource = new TestReport(); 159 | 160 | // Return Array 161 | resolve([testreport_resource]); 162 | }); 163 | 164 | module.exports.historyById = (args, context, logger) => new Promise((resolve, reject) => { 165 | logger.info('TestReport >>> historyById'); 166 | 167 | // Common search params 168 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 169 | 170 | // Search Result params 171 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 172 | 173 | // Resource Specific params 174 | let identifier = args['identifier']; 175 | let issued = args['issued']; 176 | let participant = args['participant']; 177 | let result = args['result']; 178 | let tester = args['tester']; 179 | let testscript = args['testscript']; 180 | 181 | // TODO: Build query from Parameters 182 | 183 | // TODO: Query database 184 | 185 | let TestReport = getTestReport(base_version); 186 | 187 | // Cast all results to TestReport Class 188 | let testreport_resource = new TestReport(); 189 | 190 | // Return Array 191 | resolve([testreport_resource]); 192 | }); 193 | 194 | -------------------------------------------------------------------------------- /src/services/devicecomponent/devicecomponent.service.js: -------------------------------------------------------------------------------- 1 | /*eslint no-unused-vars: "warn"*/ 2 | 3 | const { RESOURCES } = require('@asymmetrik/node-fhir-server-core').constants; 4 | const FHIRServer = require('@asymmetrik/node-fhir-server-core'); 5 | 6 | let getDeviceComponent = (base_version) => { 7 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.DEVICECOMPONENT));}; 8 | 9 | let getMeta = (base_version) => { 10 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.META));}; 11 | 12 | module.exports.search = (args, context, logger) => new Promise((resolve, reject) => { 13 | logger.info('DeviceComponent >>> search'); 14 | 15 | // Common search params 16 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 17 | 18 | // Search Result params 19 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 20 | 21 | // Resource Specific params 22 | let identifier = args['identifier']; 23 | let parent = args['parent']; 24 | let source = args['source']; 25 | let type = args['type']; 26 | 27 | // TODO: Build query from Parameters 28 | 29 | // TODO: Query database 30 | 31 | let DeviceComponent = getDeviceComponent(base_version); 32 | 33 | // Cast all results to DeviceComponent Class 34 | let devicecomponent_resource = new DeviceComponent(); 35 | // TODO: Set data with constructor or setter methods 36 | devicecomponent_resource.id = 'test id'; 37 | 38 | // Return Array 39 | resolve([devicecomponent_resource]); 40 | }); 41 | 42 | module.exports.searchById = (args, context, logger) => new Promise((resolve, reject) => { 43 | logger.info('DeviceComponent >>> searchById'); 44 | 45 | let { base_version, id } = args; 46 | 47 | let DeviceComponent = getDeviceComponent(base_version); 48 | 49 | // TODO: Build query from Parameters 50 | 51 | // TODO: Query database 52 | 53 | // Cast result to DeviceComponent Class 54 | let devicecomponent_resource = new DeviceComponent(); 55 | // TODO: Set data with constructor or setter methods 56 | devicecomponent_resource.id = 'test id'; 57 | 58 | // Return resource class 59 | // resolve(devicecomponent_resource); 60 | resolve(); 61 | }); 62 | 63 | module.exports.create = (args, context, logger) => new Promise((resolve, reject) => { 64 | logger.info('DeviceComponent >>> create'); 65 | 66 | let { base_version, id, resource } = args; 67 | 68 | let DeviceComponent = getDeviceComponent(base_version); 69 | let Meta = getMeta(base_version); 70 | 71 | // TODO: determine if client/server sets ID 72 | 73 | // Cast resource to DeviceComponent Class 74 | let devicecomponent_resource = new DeviceComponent(resource); 75 | devicecomponent_resource.meta = new Meta(); 76 | // TODO: set meta info 77 | 78 | // TODO: save record to database 79 | 80 | // Return Id 81 | resolve({ id: devicecomponent_resource.id }); 82 | }); 83 | 84 | module.exports.update = (args, context, logger) => new Promise((resolve, reject) => { 85 | logger.info('DeviceComponent >>> update'); 86 | 87 | let { base_version, id, resource } = args; 88 | 89 | let DeviceComponent = getDeviceComponent(base_version); 90 | let Meta = getMeta(base_version); 91 | 92 | // Cast resource to DeviceComponent Class 93 | let devicecomponent_resource = new DeviceComponent(resource); 94 | devicecomponent_resource.meta = new Meta(); 95 | // TODO: set meta info, increment meta ID 96 | 97 | // TODO: save record to database 98 | 99 | // Return id, if recorded was created or updated, new meta version id 100 | resolve({ id: devicecomponent_resource.id, created: false, resource_version: devicecomponent_resource.meta.versionId }); 101 | }); 102 | 103 | module.exports.remove = (args, context, logger) => new Promise((resolve, reject) => { 104 | logger.info('DeviceComponent >>> remove'); 105 | 106 | let { id } = args; 107 | 108 | // TODO: delete record in database (soft/hard) 109 | 110 | // Return number of records deleted 111 | resolve({ deleted: 0 }); 112 | }); 113 | 114 | module.exports.searchByVersionId = (args, context, logger) => new Promise((resolve, reject) => { 115 | logger.info('DeviceComponent >>> searchByVersionId'); 116 | 117 | let { base_version, id, version_id } = args; 118 | 119 | let DeviceComponent = getDeviceComponent(base_version); 120 | 121 | // TODO: Build query from Parameters 122 | 123 | // TODO: Query database 124 | 125 | // Cast result to DeviceComponent Class 126 | let devicecomponent_resource = new DeviceComponent(); 127 | 128 | // Return resource class 129 | resolve(devicecomponent_resource); 130 | }); 131 | 132 | module.exports.history = (args, context, logger) => new Promise((resolve, reject) => { 133 | logger.info('DeviceComponent >>> history'); 134 | 135 | // Common search params 136 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 137 | 138 | // Search Result params 139 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 140 | 141 | // Resource Specific params 142 | let identifier = args['identifier']; 143 | let parent = args['parent']; 144 | let source = args['source']; 145 | let type = args['type']; 146 | 147 | // TODO: Build query from Parameters 148 | 149 | // TODO: Query database 150 | 151 | let DeviceComponent = getDeviceComponent(base_version); 152 | 153 | // Cast all results to DeviceComponent Class 154 | let devicecomponent_resource = new DeviceComponent(); 155 | 156 | // Return Array 157 | resolve([devicecomponent_resource]); 158 | }); 159 | 160 | module.exports.historyById = (args, context, logger) => new Promise((resolve, reject) => { 161 | logger.info('DeviceComponent >>> historyById'); 162 | 163 | // Common search params 164 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 165 | 166 | // Search Result params 167 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 168 | 169 | // Resource Specific params 170 | let identifier = args['identifier']; 171 | let parent = args['parent']; 172 | let source = args['source']; 173 | let type = args['type']; 174 | 175 | // TODO: Build query from Parameters 176 | 177 | // TODO: Query database 178 | 179 | let DeviceComponent = getDeviceComponent(base_version); 180 | 181 | // Cast all results to DeviceComponent Class 182 | let devicecomponent_resource = new DeviceComponent(); 183 | 184 | // Return Array 185 | resolve([devicecomponent_resource]); 186 | }); 187 | 188 | -------------------------------------------------------------------------------- /src/services/processrequest/processrequest.service.js: -------------------------------------------------------------------------------- 1 | /*eslint no-unused-vars: "warn"*/ 2 | 3 | const { RESOURCES } = require('@asymmetrik/node-fhir-server-core').constants; 4 | const FHIRServer = require('@asymmetrik/node-fhir-server-core'); 5 | 6 | let getProcessRequest = (base_version) => { 7 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.PROCESSREQUEST));}; 8 | 9 | let getMeta = (base_version) => { 10 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.META));}; 11 | 12 | module.exports.search = (args, context, logger) => new Promise((resolve, reject) => { 13 | logger.info('ProcessRequest >>> search'); 14 | 15 | // Common search params 16 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 17 | 18 | // Search Result params 19 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 20 | 21 | // Resource Specific params 22 | let action = args['action']; 23 | let identifier = args['identifier']; 24 | let organization = args['organization']; 25 | let provider = args['provider']; 26 | 27 | // TODO: Build query from Parameters 28 | 29 | // TODO: Query database 30 | 31 | let ProcessRequest = getProcessRequest(base_version); 32 | 33 | // Cast all results to ProcessRequest Class 34 | let processrequest_resource = new ProcessRequest(); 35 | // TODO: Set data with constructor or setter methods 36 | processrequest_resource.id = 'test id'; 37 | 38 | // Return Array 39 | resolve([processrequest_resource]); 40 | }); 41 | 42 | module.exports.searchById = (args, context, logger) => new Promise((resolve, reject) => { 43 | logger.info('ProcessRequest >>> searchById'); 44 | 45 | let { base_version, id } = args; 46 | 47 | let ProcessRequest = getProcessRequest(base_version); 48 | 49 | // TODO: Build query from Parameters 50 | 51 | // TODO: Query database 52 | 53 | // Cast result to ProcessRequest Class 54 | let processrequest_resource = new ProcessRequest(); 55 | // TODO: Set data with constructor or setter methods 56 | processrequest_resource.id = 'test id'; 57 | 58 | // Return resource class 59 | // resolve(processrequest_resource); 60 | resolve(); 61 | }); 62 | 63 | module.exports.create = (args, context, logger) => new Promise((resolve, reject) => { 64 | logger.info('ProcessRequest >>> create'); 65 | 66 | let { base_version, id, resource } = args; 67 | 68 | let ProcessRequest = getProcessRequest(base_version); 69 | let Meta = getMeta(base_version); 70 | 71 | // TODO: determine if client/server sets ID 72 | 73 | // Cast resource to ProcessRequest Class 74 | let processrequest_resource = new ProcessRequest(resource); 75 | processrequest_resource.meta = new Meta(); 76 | // TODO: set meta info 77 | 78 | // TODO: save record to database 79 | 80 | // Return Id 81 | resolve({ id: processrequest_resource.id }); 82 | }); 83 | 84 | module.exports.update = (args, context, logger) => new Promise((resolve, reject) => { 85 | logger.info('ProcessRequest >>> update'); 86 | 87 | let { base_version, id, resource } = args; 88 | 89 | let ProcessRequest = getProcessRequest(base_version); 90 | let Meta = getMeta(base_version); 91 | 92 | // Cast resource to ProcessRequest Class 93 | let processrequest_resource = new ProcessRequest(resource); 94 | processrequest_resource.meta = new Meta(); 95 | // TODO: set meta info, increment meta ID 96 | 97 | // TODO: save record to database 98 | 99 | // Return id, if recorded was created or updated, new meta version id 100 | resolve({ id: processrequest_resource.id, created: false, resource_version: processrequest_resource.meta.versionId }); 101 | }); 102 | 103 | module.exports.remove = (args, context, logger) => new Promise((resolve, reject) => { 104 | logger.info('ProcessRequest >>> remove'); 105 | 106 | let { id } = args; 107 | 108 | // TODO: delete record in database (soft/hard) 109 | 110 | // Return number of records deleted 111 | resolve({ deleted: 0 }); 112 | }); 113 | 114 | module.exports.searchByVersionId = (args, context, logger) => new Promise((resolve, reject) => { 115 | logger.info('ProcessRequest >>> searchByVersionId'); 116 | 117 | let { base_version, id, version_id } = args; 118 | 119 | let ProcessRequest = getProcessRequest(base_version); 120 | 121 | // TODO: Build query from Parameters 122 | 123 | // TODO: Query database 124 | 125 | // Cast result to ProcessRequest Class 126 | let processrequest_resource = new ProcessRequest(); 127 | 128 | // Return resource class 129 | resolve(processrequest_resource); 130 | }); 131 | 132 | module.exports.history = (args, context, logger) => new Promise((resolve, reject) => { 133 | logger.info('ProcessRequest >>> history'); 134 | 135 | // Common search params 136 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 137 | 138 | // Search Result params 139 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 140 | 141 | // Resource Specific params 142 | let action = args['action']; 143 | let identifier = args['identifier']; 144 | let organization = args['organization']; 145 | let provider = args['provider']; 146 | 147 | // TODO: Build query from Parameters 148 | 149 | // TODO: Query database 150 | 151 | let ProcessRequest = getProcessRequest(base_version); 152 | 153 | // Cast all results to ProcessRequest Class 154 | let processrequest_resource = new ProcessRequest(); 155 | 156 | // Return Array 157 | resolve([processrequest_resource]); 158 | }); 159 | 160 | module.exports.historyById = (args, context, logger) => new Promise((resolve, reject) => { 161 | logger.info('ProcessRequest >>> historyById'); 162 | 163 | // Common search params 164 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 165 | 166 | // Search Result params 167 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 168 | 169 | // Resource Specific params 170 | let action = args['action']; 171 | let identifier = args['identifier']; 172 | let organization = args['organization']; 173 | let provider = args['provider']; 174 | 175 | // TODO: Build query from Parameters 176 | 177 | // TODO: Query database 178 | 179 | let ProcessRequest = getProcessRequest(base_version); 180 | 181 | // Cast all results to ProcessRequest Class 182 | let processrequest_resource = new ProcessRequest(); 183 | 184 | // Return Array 185 | resolve([processrequest_resource]); 186 | }); 187 | 188 | -------------------------------------------------------------------------------- /src/services/account/account.service.js: -------------------------------------------------------------------------------- 1 | /*eslint no-unused-vars: "warn"*/ 2 | 3 | const { RESOURCES } = require('@asymmetrik/node-fhir-server-core').constants; 4 | const FHIRServer = require('@asymmetrik/node-fhir-server-core'); 5 | 6 | let getAccount = (base_version) => { 7 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.ACCOUNT));}; 8 | 9 | let getMeta = (base_version) => { 10 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.META));}; 11 | 12 | module.exports.search = (args, context, logger) => new Promise((resolve, reject) => { 13 | logger.info('Account >>> search'); 14 | 15 | // Common search params 16 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 17 | 18 | // Search Result params 19 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 20 | 21 | // Resource Specific params 22 | let balance = args['balance']; 23 | let identifier = args['identifier']; 24 | let name = args['name']; 25 | let owner = args['owner']; 26 | let patient = args['patient']; 27 | let period = args['period']; 28 | let status = args['status']; 29 | let subject = args['subject']; 30 | let type = args['type']; 31 | 32 | // TODO: Build query from Parameters 33 | 34 | // TODO: Query database 35 | 36 | let Account = getAccount(base_version); 37 | 38 | // Cast all results to Account Class 39 | let account_resource = new Account(); 40 | // TODO: Set data with constructor or setter methods 41 | account_resource.id = 'test id'; 42 | 43 | // Return Array 44 | resolve([account_resource]); 45 | }); 46 | 47 | module.exports.searchById = (args, context, logger) => new Promise((resolve, reject) => { 48 | logger.info('Account >>> searchById'); 49 | 50 | let { base_version, id } = args; 51 | 52 | let Account = getAccount(base_version); 53 | 54 | // TODO: Build query from Parameters 55 | 56 | // TODO: Query database 57 | 58 | // Cast result to Account Class 59 | let account_resource = new Account(); 60 | // TODO: Set data with constructor or setter methods 61 | account_resource.id = 'test id'; 62 | 63 | // Return resource class 64 | // resolve(account_resource); 65 | resolve(); 66 | }); 67 | 68 | module.exports.create = (args, context, logger) => new Promise((resolve, reject) => { 69 | logger.info('Account >>> create'); 70 | 71 | let { base_version, id, resource } = args; 72 | 73 | let Account = getAccount(base_version); 74 | let Meta = getMeta(base_version); 75 | 76 | // TODO: determine if client/server sets ID 77 | 78 | // Cast resource to Account Class 79 | let account_resource = new Account(resource); 80 | account_resource.meta = new Meta(); 81 | // TODO: set meta info 82 | 83 | // TODO: save record to database 84 | 85 | // Return Id 86 | resolve({ id: account_resource.id }); 87 | }); 88 | 89 | module.exports.update = (args, context, logger) => new Promise((resolve, reject) => { 90 | logger.info('Account >>> update'); 91 | 92 | let { base_version, id, resource } = args; 93 | 94 | let Account = getAccount(base_version); 95 | let Meta = getMeta(base_version); 96 | 97 | // Cast resource to Account Class 98 | let account_resource = new Account(resource); 99 | account_resource.meta = new Meta(); 100 | // TODO: set meta info, increment meta ID 101 | 102 | // TODO: save record to database 103 | 104 | // Return id, if recorded was created or updated, new meta version id 105 | resolve({ id: account_resource.id, created: false, resource_version: account_resource.meta.versionId }); 106 | }); 107 | 108 | module.exports.remove = (args, context, logger) => new Promise((resolve, reject) => { 109 | logger.info('Account >>> remove'); 110 | 111 | let { id } = args; 112 | 113 | // TODO: delete record in database (soft/hard) 114 | 115 | // Return number of records deleted 116 | resolve({ deleted: 0 }); 117 | }); 118 | 119 | module.exports.searchByVersionId = (args, context, logger) => new Promise((resolve, reject) => { 120 | logger.info('Account >>> searchByVersionId'); 121 | 122 | let { base_version, id, version_id } = args; 123 | 124 | let Account = getAccount(base_version); 125 | 126 | // TODO: Build query from Parameters 127 | 128 | // TODO: Query database 129 | 130 | // Cast result to Account Class 131 | let account_resource = new Account(); 132 | 133 | // Return resource class 134 | resolve(account_resource); 135 | }); 136 | 137 | module.exports.history = (args, context, logger) => new Promise((resolve, reject) => { 138 | logger.info('Account >>> history'); 139 | 140 | // Common search params 141 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 142 | 143 | // Search Result params 144 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 145 | 146 | // Resource Specific params 147 | let balance = args['balance']; 148 | let identifier = args['identifier']; 149 | let name = args['name']; 150 | let owner = args['owner']; 151 | let patient = args['patient']; 152 | let period = args['period']; 153 | let status = args['status']; 154 | let subject = args['subject']; 155 | let type = args['type']; 156 | 157 | // TODO: Build query from Parameters 158 | 159 | // TODO: Query database 160 | 161 | let Account = getAccount(base_version); 162 | 163 | // Cast all results to Account Class 164 | let account_resource = new Account(); 165 | 166 | // Return Array 167 | resolve([account_resource]); 168 | }); 169 | 170 | module.exports.historyById = (args, context, logger) => new Promise((resolve, reject) => { 171 | logger.info('Account >>> historyById'); 172 | 173 | // Common search params 174 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 175 | 176 | // Search Result params 177 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 178 | 179 | // Resource Specific params 180 | let balance = args['balance']; 181 | let identifier = args['identifier']; 182 | let name = args['name']; 183 | let owner = args['owner']; 184 | let patient = args['patient']; 185 | let period = args['period']; 186 | let status = args['status']; 187 | let subject = args['subject']; 188 | let type = args['type']; 189 | 190 | // TODO: Build query from Parameters 191 | 192 | // TODO: Query database 193 | 194 | let Account = getAccount(base_version); 195 | 196 | // Cast all results to Account Class 197 | let account_resource = new Account(); 198 | 199 | // Return Array 200 | resolve([account_resource]); 201 | }); 202 | 203 | -------------------------------------------------------------------------------- /src/services/group/group.service.js: -------------------------------------------------------------------------------- 1 | /*eslint no-unused-vars: "warn"*/ 2 | 3 | const { RESOURCES } = require('@asymmetrik/node-fhir-server-core').constants; 4 | const FHIRServer = require('@asymmetrik/node-fhir-server-core'); 5 | 6 | let getGroup = (base_version) => { 7 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.GROUP));}; 8 | 9 | let getMeta = (base_version) => { 10 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.META));}; 11 | 12 | module.exports.search = (args, context, logger) => new Promise((resolve, reject) => { 13 | logger.info('Group >>> search'); 14 | 15 | // Common search params 16 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 17 | 18 | // Search Result params 19 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 20 | 21 | // Resource Specific params 22 | let actual = args['actual']; 23 | let characteristic = args['characteristic']; 24 | let characteristic_value = args['characteristic-value']; 25 | let code = args['code']; 26 | let exclude = args['exclude']; 27 | let identifier = args['identifier']; 28 | let member = args['member']; 29 | let type = args['type']; 30 | let value = args['value']; 31 | 32 | // TODO: Build query from Parameters 33 | 34 | // TODO: Query database 35 | 36 | let Group = getGroup(base_version); 37 | 38 | // Cast all results to Group Class 39 | let group_resource = new Group(); 40 | // TODO: Set data with constructor or setter methods 41 | group_resource.id = 'test id'; 42 | 43 | // Return Array 44 | resolve([group_resource]); 45 | }); 46 | 47 | module.exports.searchById = (args, context, logger) => new Promise((resolve, reject) => { 48 | logger.info('Group >>> searchById'); 49 | 50 | let { base_version, id } = args; 51 | 52 | let Group = getGroup(base_version); 53 | 54 | // TODO: Build query from Parameters 55 | 56 | // TODO: Query database 57 | 58 | // Cast result to Group Class 59 | let group_resource = new Group(); 60 | // TODO: Set data with constructor or setter methods 61 | group_resource.id = 'test id'; 62 | 63 | // Return resource class 64 | // resolve(group_resource); 65 | resolve(); 66 | }); 67 | 68 | module.exports.create = (args, context, logger) => new Promise((resolve, reject) => { 69 | logger.info('Group >>> create'); 70 | 71 | let { base_version, id, resource } = args; 72 | 73 | let Group = getGroup(base_version); 74 | let Meta = getMeta(base_version); 75 | 76 | // TODO: determine if client/server sets ID 77 | 78 | // Cast resource to Group Class 79 | let group_resource = new Group(resource); 80 | group_resource.meta = new Meta(); 81 | // TODO: set meta info 82 | 83 | // TODO: save record to database 84 | 85 | // Return Id 86 | resolve({ id: group_resource.id }); 87 | }); 88 | 89 | module.exports.update = (args, context, logger) => new Promise((resolve, reject) => { 90 | logger.info('Group >>> update'); 91 | 92 | let { base_version, id, resource } = args; 93 | 94 | let Group = getGroup(base_version); 95 | let Meta = getMeta(base_version); 96 | 97 | // Cast resource to Group Class 98 | let group_resource = new Group(resource); 99 | group_resource.meta = new Meta(); 100 | // TODO: set meta info, increment meta ID 101 | 102 | // TODO: save record to database 103 | 104 | // Return id, if recorded was created or updated, new meta version id 105 | resolve({ id: group_resource.id, created: false, resource_version: group_resource.meta.versionId }); 106 | }); 107 | 108 | module.exports.remove = (args, context, logger) => new Promise((resolve, reject) => { 109 | logger.info('Group >>> remove'); 110 | 111 | let { id } = args; 112 | 113 | // TODO: delete record in database (soft/hard) 114 | 115 | // Return number of records deleted 116 | resolve({ deleted: 0 }); 117 | }); 118 | 119 | module.exports.searchByVersionId = (args, context, logger) => new Promise((resolve, reject) => { 120 | logger.info('Group >>> searchByVersionId'); 121 | 122 | let { base_version, id, version_id } = args; 123 | 124 | let Group = getGroup(base_version); 125 | 126 | // TODO: Build query from Parameters 127 | 128 | // TODO: Query database 129 | 130 | // Cast result to Group Class 131 | let group_resource = new Group(); 132 | 133 | // Return resource class 134 | resolve(group_resource); 135 | }); 136 | 137 | module.exports.history = (args, context, logger) => new Promise((resolve, reject) => { 138 | logger.info('Group >>> history'); 139 | 140 | // Common search params 141 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 142 | 143 | // Search Result params 144 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 145 | 146 | // Resource Specific params 147 | let actual = args['actual']; 148 | let characteristic = args['characteristic']; 149 | let characteristic_value = args['characteristic-value']; 150 | let code = args['code']; 151 | let exclude = args['exclude']; 152 | let identifier = args['identifier']; 153 | let member = args['member']; 154 | let type = args['type']; 155 | let value = args['value']; 156 | 157 | // TODO: Build query from Parameters 158 | 159 | // TODO: Query database 160 | 161 | let Group = getGroup(base_version); 162 | 163 | // Cast all results to Group Class 164 | let group_resource = new Group(); 165 | 166 | // Return Array 167 | resolve([group_resource]); 168 | }); 169 | 170 | module.exports.historyById = (args, context, logger) => new Promise((resolve, reject) => { 171 | logger.info('Group >>> historyById'); 172 | 173 | // Common search params 174 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 175 | 176 | // Search Result params 177 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 178 | 179 | // Resource Specific params 180 | let actual = args['actual']; 181 | let characteristic = args['characteristic']; 182 | let characteristic_value = args['characteristic-value']; 183 | let code = args['code']; 184 | let exclude = args['exclude']; 185 | let identifier = args['identifier']; 186 | let member = args['member']; 187 | let type = args['type']; 188 | let value = args['value']; 189 | 190 | // TODO: Build query from Parameters 191 | 192 | // TODO: Query database 193 | 194 | let Group = getGroup(base_version); 195 | 196 | // Cast all results to Group Class 197 | let group_resource = new Group(); 198 | 199 | // Return Array 200 | resolve([group_resource]); 201 | }); 202 | 203 | -------------------------------------------------------------------------------- /src/services/guidanceresponse/guidanceresponse.service.js: -------------------------------------------------------------------------------- 1 | /*eslint no-unused-vars: "warn"*/ 2 | 3 | const { RESOURCES } = require('@asymmetrik/node-fhir-server-core').constants; 4 | const FHIRServer = require('@asymmetrik/node-fhir-server-core'); 5 | 6 | let getGuidanceResponse = (base_version) => { 7 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.GUIDANCERESPONSE));}; 8 | 9 | let getMeta = (base_version) => { 10 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.META));}; 11 | 12 | module.exports.search = (args, context, logger) => new Promise((resolve, reject) => { 13 | logger.info('GuidanceResponse >>> search'); 14 | 15 | // Common search params 16 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 17 | 18 | // Search Result params 19 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 20 | 21 | // Resource Specific params 22 | let identifier = args['identifier']; 23 | let patient = args['patient']; 24 | let request = args['request']; 25 | let subject = args['subject']; 26 | 27 | // TODO: Build query from Parameters 28 | 29 | // TODO: Query database 30 | 31 | let GuidanceResponse = getGuidanceResponse(base_version); 32 | 33 | // Cast all results to GuidanceResponse Class 34 | let guidanceresponse_resource = new GuidanceResponse(); 35 | // TODO: Set data with constructor or setter methods 36 | guidanceresponse_resource.id = 'test id'; 37 | 38 | // Return Array 39 | resolve([guidanceresponse_resource]); 40 | }); 41 | 42 | module.exports.searchById = (args, context, logger) => new Promise((resolve, reject) => { 43 | logger.info('GuidanceResponse >>> searchById'); 44 | 45 | let { base_version, id } = args; 46 | 47 | let GuidanceResponse = getGuidanceResponse(base_version); 48 | 49 | // TODO: Build query from Parameters 50 | 51 | // TODO: Query database 52 | 53 | // Cast result to GuidanceResponse Class 54 | let guidanceresponse_resource = new GuidanceResponse(); 55 | // TODO: Set data with constructor or setter methods 56 | guidanceresponse_resource.id = 'test id'; 57 | 58 | // Return resource class 59 | // resolve(guidanceresponse_resource); 60 | resolve(); 61 | }); 62 | 63 | module.exports.create = (args, context, logger) => new Promise((resolve, reject) => { 64 | logger.info('GuidanceResponse >>> create'); 65 | 66 | let { base_version, id, resource } = args; 67 | 68 | let GuidanceResponse = getGuidanceResponse(base_version); 69 | let Meta = getMeta(base_version); 70 | 71 | // TODO: determine if client/server sets ID 72 | 73 | // Cast resource to GuidanceResponse Class 74 | let guidanceresponse_resource = new GuidanceResponse(resource); 75 | guidanceresponse_resource.meta = new Meta(); 76 | // TODO: set meta info 77 | 78 | // TODO: save record to database 79 | 80 | // Return Id 81 | resolve({ id: guidanceresponse_resource.id }); 82 | }); 83 | 84 | module.exports.update = (args, context, logger) => new Promise((resolve, reject) => { 85 | logger.info('GuidanceResponse >>> update'); 86 | 87 | let { base_version, id, resource } = args; 88 | 89 | let GuidanceResponse = getGuidanceResponse(base_version); 90 | let Meta = getMeta(base_version); 91 | 92 | // Cast resource to GuidanceResponse Class 93 | let guidanceresponse_resource = new GuidanceResponse(resource); 94 | guidanceresponse_resource.meta = new Meta(); 95 | // TODO: set meta info, increment meta ID 96 | 97 | // TODO: save record to database 98 | 99 | // Return id, if recorded was created or updated, new meta version id 100 | resolve({ id: guidanceresponse_resource.id, created: false, resource_version: guidanceresponse_resource.meta.versionId }); 101 | }); 102 | 103 | module.exports.remove = (args, context, logger) => new Promise((resolve, reject) => { 104 | logger.info('GuidanceResponse >>> remove'); 105 | 106 | let { id } = args; 107 | 108 | // TODO: delete record in database (soft/hard) 109 | 110 | // Return number of records deleted 111 | resolve({ deleted: 0 }); 112 | }); 113 | 114 | module.exports.searchByVersionId = (args, context, logger) => new Promise((resolve, reject) => { 115 | logger.info('GuidanceResponse >>> searchByVersionId'); 116 | 117 | let { base_version, id, version_id } = args; 118 | 119 | let GuidanceResponse = getGuidanceResponse(base_version); 120 | 121 | // TODO: Build query from Parameters 122 | 123 | // TODO: Query database 124 | 125 | // Cast result to GuidanceResponse Class 126 | let guidanceresponse_resource = new GuidanceResponse(); 127 | 128 | // Return resource class 129 | resolve(guidanceresponse_resource); 130 | }); 131 | 132 | module.exports.history = (args, context, logger) => new Promise((resolve, reject) => { 133 | logger.info('GuidanceResponse >>> history'); 134 | 135 | // Common search params 136 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 137 | 138 | // Search Result params 139 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 140 | 141 | // Resource Specific params 142 | let identifier = args['identifier']; 143 | let patient = args['patient']; 144 | let request = args['request']; 145 | let subject = args['subject']; 146 | 147 | // TODO: Build query from Parameters 148 | 149 | // TODO: Query database 150 | 151 | let GuidanceResponse = getGuidanceResponse(base_version); 152 | 153 | // Cast all results to GuidanceResponse Class 154 | let guidanceresponse_resource = new GuidanceResponse(); 155 | 156 | // Return Array 157 | resolve([guidanceresponse_resource]); 158 | }); 159 | 160 | module.exports.historyById = (args, context, logger) => new Promise((resolve, reject) => { 161 | logger.info('GuidanceResponse >>> historyById'); 162 | 163 | // Common search params 164 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 165 | 166 | // Search Result params 167 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 168 | 169 | // Resource Specific params 170 | let identifier = args['identifier']; 171 | let patient = args['patient']; 172 | let request = args['request']; 173 | let subject = args['subject']; 174 | 175 | // TODO: Build query from Parameters 176 | 177 | // TODO: Query database 178 | 179 | let GuidanceResponse = getGuidanceResponse(base_version); 180 | 181 | // Cast all results to GuidanceResponse Class 182 | let guidanceresponse_resource = new GuidanceResponse(); 183 | 184 | // Return Array 185 | resolve([guidanceresponse_resource]); 186 | }); 187 | 188 | -------------------------------------------------------------------------------- /src/services/supplydelivery/supplydelivery.service.js: -------------------------------------------------------------------------------- 1 | /*eslint no-unused-vars: "warn"*/ 2 | 3 | const { RESOURCES } = require('@asymmetrik/node-fhir-server-core').constants; 4 | const FHIRServer = require('@asymmetrik/node-fhir-server-core'); 5 | 6 | let getSupplyDelivery = (base_version) => { 7 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.SUPPLYDELIVERY));}; 8 | 9 | let getMeta = (base_version) => { 10 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.META));}; 11 | 12 | module.exports.search = (args, context, logger) => new Promise((resolve, reject) => { 13 | logger.info('SupplyDelivery >>> search'); 14 | 15 | // Common search params 16 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 17 | 18 | // Search Result params 19 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 20 | 21 | // Resource Specific params 22 | let identifier = args['identifier']; 23 | let patient = args['patient']; 24 | let receiver = args['receiver']; 25 | let status = args['status']; 26 | let supplier = args['supplier']; 27 | 28 | // TODO: Build query from Parameters 29 | 30 | // TODO: Query database 31 | 32 | let SupplyDelivery = getSupplyDelivery(base_version); 33 | 34 | // Cast all results to SupplyDelivery Class 35 | let supplydelivery_resource = new SupplyDelivery(); 36 | // TODO: Set data with constructor or setter methods 37 | supplydelivery_resource.id = 'test id'; 38 | 39 | // Return Array 40 | resolve([supplydelivery_resource]); 41 | }); 42 | 43 | module.exports.searchById = (args, context, logger) => new Promise((resolve, reject) => { 44 | logger.info('SupplyDelivery >>> searchById'); 45 | 46 | let { base_version, id } = args; 47 | 48 | let SupplyDelivery = getSupplyDelivery(base_version); 49 | 50 | // TODO: Build query from Parameters 51 | 52 | // TODO: Query database 53 | 54 | // Cast result to SupplyDelivery Class 55 | let supplydelivery_resource = new SupplyDelivery(); 56 | // TODO: Set data with constructor or setter methods 57 | supplydelivery_resource.id = 'test id'; 58 | 59 | // Return resource class 60 | // resolve(supplydelivery_resource); 61 | resolve(); 62 | }); 63 | 64 | module.exports.create = (args, context, logger) => new Promise((resolve, reject) => { 65 | logger.info('SupplyDelivery >>> create'); 66 | 67 | let { base_version, id, resource } = args; 68 | 69 | let SupplyDelivery = getSupplyDelivery(base_version); 70 | let Meta = getMeta(base_version); 71 | 72 | // TODO: determine if client/server sets ID 73 | 74 | // Cast resource to SupplyDelivery Class 75 | let supplydelivery_resource = new SupplyDelivery(resource); 76 | supplydelivery_resource.meta = new Meta(); 77 | // TODO: set meta info 78 | 79 | // TODO: save record to database 80 | 81 | // Return Id 82 | resolve({ id: supplydelivery_resource.id }); 83 | }); 84 | 85 | module.exports.update = (args, context, logger) => new Promise((resolve, reject) => { 86 | logger.info('SupplyDelivery >>> update'); 87 | 88 | let { base_version, id, resource } = args; 89 | 90 | let SupplyDelivery = getSupplyDelivery(base_version); 91 | let Meta = getMeta(base_version); 92 | 93 | // Cast resource to SupplyDelivery Class 94 | let supplydelivery_resource = new SupplyDelivery(resource); 95 | supplydelivery_resource.meta = new Meta(); 96 | // TODO: set meta info, increment meta ID 97 | 98 | // TODO: save record to database 99 | 100 | // Return id, if recorded was created or updated, new meta version id 101 | resolve({ id: supplydelivery_resource.id, created: false, resource_version: supplydelivery_resource.meta.versionId }); 102 | }); 103 | 104 | module.exports.remove = (args, context, logger) => new Promise((resolve, reject) => { 105 | logger.info('SupplyDelivery >>> remove'); 106 | 107 | let { id } = args; 108 | 109 | // TODO: delete record in database (soft/hard) 110 | 111 | // Return number of records deleted 112 | resolve({ deleted: 0 }); 113 | }); 114 | 115 | module.exports.searchByVersionId = (args, context, logger) => new Promise((resolve, reject) => { 116 | logger.info('SupplyDelivery >>> searchByVersionId'); 117 | 118 | let { base_version, id, version_id } = args; 119 | 120 | let SupplyDelivery = getSupplyDelivery(base_version); 121 | 122 | // TODO: Build query from Parameters 123 | 124 | // TODO: Query database 125 | 126 | // Cast result to SupplyDelivery Class 127 | let supplydelivery_resource = new SupplyDelivery(); 128 | 129 | // Return resource class 130 | resolve(supplydelivery_resource); 131 | }); 132 | 133 | module.exports.history = (args, context, logger) => new Promise((resolve, reject) => { 134 | logger.info('SupplyDelivery >>> history'); 135 | 136 | // Common search params 137 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 138 | 139 | // Search Result params 140 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 141 | 142 | // Resource Specific params 143 | let identifier = args['identifier']; 144 | let patient = args['patient']; 145 | let receiver = args['receiver']; 146 | let status = args['status']; 147 | let supplier = args['supplier']; 148 | 149 | // TODO: Build query from Parameters 150 | 151 | // TODO: Query database 152 | 153 | let SupplyDelivery = getSupplyDelivery(base_version); 154 | 155 | // Cast all results to SupplyDelivery Class 156 | let supplydelivery_resource = new SupplyDelivery(); 157 | 158 | // Return Array 159 | resolve([supplydelivery_resource]); 160 | }); 161 | 162 | module.exports.historyById = (args, context, logger) => new Promise((resolve, reject) => { 163 | logger.info('SupplyDelivery >>> historyById'); 164 | 165 | // Common search params 166 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 167 | 168 | // Search Result params 169 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 170 | 171 | // Resource Specific params 172 | let identifier = args['identifier']; 173 | let patient = args['patient']; 174 | let receiver = args['receiver']; 175 | let status = args['status']; 176 | let supplier = args['supplier']; 177 | 178 | // TODO: Build query from Parameters 179 | 180 | // TODO: Query database 181 | 182 | let SupplyDelivery = getSupplyDelivery(base_version); 183 | 184 | // Cast all results to SupplyDelivery Class 185 | let supplydelivery_resource = new SupplyDelivery(); 186 | 187 | // Return Array 188 | resolve([supplydelivery_resource]); 189 | }); 190 | 191 | -------------------------------------------------------------------------------- /src/services/enrollmentresponse/enrollmentresponse.service.js: -------------------------------------------------------------------------------- 1 | /*eslint no-unused-vars: "warn"*/ 2 | 3 | const { RESOURCES } = require('@asymmetrik/node-fhir-server-core').constants; 4 | const FHIRServer = require('@asymmetrik/node-fhir-server-core'); 5 | 6 | let getEnrollmentResponse = (base_version) => { 7 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.ENROLLMENTRESPONSE));}; 8 | 9 | let getMeta = (base_version) => { 10 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.META));}; 11 | 12 | module.exports.search = (args, context, logger) => new Promise((resolve, reject) => { 13 | logger.info('EnrollmentResponse >>> search'); 14 | 15 | // Common search params 16 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 17 | 18 | // Search Result params 19 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 20 | 21 | // Resource Specific params 22 | let identifier = args['identifier']; 23 | let organization = args['organization']; 24 | let request = args['request']; 25 | 26 | // TODO: Build query from Parameters 27 | 28 | // TODO: Query database 29 | 30 | let EnrollmentResponse = getEnrollmentResponse(base_version); 31 | 32 | // Cast all results to EnrollmentResponse Class 33 | let enrollmentresponse_resource = new EnrollmentResponse(); 34 | // TODO: Set data with constructor or setter methods 35 | enrollmentresponse_resource.id = 'test id'; 36 | 37 | // Return Array 38 | resolve([enrollmentresponse_resource]); 39 | }); 40 | 41 | module.exports.searchById = (args, context, logger) => new Promise((resolve, reject) => { 42 | logger.info('EnrollmentResponse >>> searchById'); 43 | 44 | let { base_version, id } = args; 45 | 46 | let EnrollmentResponse = getEnrollmentResponse(base_version); 47 | 48 | // TODO: Build query from Parameters 49 | 50 | // TODO: Query database 51 | 52 | // Cast result to EnrollmentResponse Class 53 | let enrollmentresponse_resource = new EnrollmentResponse(); 54 | // TODO: Set data with constructor or setter methods 55 | enrollmentresponse_resource.id = 'test id'; 56 | 57 | // Return resource class 58 | // resolve(enrollmentresponse_resource); 59 | resolve(); 60 | }); 61 | 62 | module.exports.create = (args, context, logger) => new Promise((resolve, reject) => { 63 | logger.info('EnrollmentResponse >>> create'); 64 | 65 | let { base_version, id, resource } = args; 66 | 67 | let EnrollmentResponse = getEnrollmentResponse(base_version); 68 | let Meta = getMeta(base_version); 69 | 70 | // TODO: determine if client/server sets ID 71 | 72 | // Cast resource to EnrollmentResponse Class 73 | let enrollmentresponse_resource = new EnrollmentResponse(resource); 74 | enrollmentresponse_resource.meta = new Meta(); 75 | // TODO: set meta info 76 | 77 | // TODO: save record to database 78 | 79 | // Return Id 80 | resolve({ id: enrollmentresponse_resource.id }); 81 | }); 82 | 83 | module.exports.update = (args, context, logger) => new Promise((resolve, reject) => { 84 | logger.info('EnrollmentResponse >>> update'); 85 | 86 | let { base_version, id, resource } = args; 87 | 88 | let EnrollmentResponse = getEnrollmentResponse(base_version); 89 | let Meta = getMeta(base_version); 90 | 91 | // Cast resource to EnrollmentResponse Class 92 | let enrollmentresponse_resource = new EnrollmentResponse(resource); 93 | enrollmentresponse_resource.meta = new Meta(); 94 | // TODO: set meta info, increment meta ID 95 | 96 | // TODO: save record to database 97 | 98 | // Return id, if recorded was created or updated, new meta version id 99 | resolve({ id: enrollmentresponse_resource.id, created: false, resource_version: enrollmentresponse_resource.meta.versionId }); 100 | }); 101 | 102 | module.exports.remove = (args, context, logger) => new Promise((resolve, reject) => { 103 | logger.info('EnrollmentResponse >>> remove'); 104 | 105 | let { id } = args; 106 | 107 | // TODO: delete record in database (soft/hard) 108 | 109 | // Return number of records deleted 110 | resolve({ deleted: 0 }); 111 | }); 112 | 113 | module.exports.searchByVersionId = (args, context, logger) => new Promise((resolve, reject) => { 114 | logger.info('EnrollmentResponse >>> searchByVersionId'); 115 | 116 | let { base_version, id, version_id } = args; 117 | 118 | let EnrollmentResponse = getEnrollmentResponse(base_version); 119 | 120 | // TODO: Build query from Parameters 121 | 122 | // TODO: Query database 123 | 124 | // Cast result to EnrollmentResponse Class 125 | let enrollmentresponse_resource = new EnrollmentResponse(); 126 | 127 | // Return resource class 128 | resolve(enrollmentresponse_resource); 129 | }); 130 | 131 | module.exports.history = (args, context, logger) => new Promise((resolve, reject) => { 132 | logger.info('EnrollmentResponse >>> history'); 133 | 134 | // Common search params 135 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 136 | 137 | // Search Result params 138 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 139 | 140 | // Resource Specific params 141 | let identifier = args['identifier']; 142 | let organization = args['organization']; 143 | let request = args['request']; 144 | 145 | // TODO: Build query from Parameters 146 | 147 | // TODO: Query database 148 | 149 | let EnrollmentResponse = getEnrollmentResponse(base_version); 150 | 151 | // Cast all results to EnrollmentResponse Class 152 | let enrollmentresponse_resource = new EnrollmentResponse(); 153 | 154 | // Return Array 155 | resolve([enrollmentresponse_resource]); 156 | }); 157 | 158 | module.exports.historyById = (args, context, logger) => new Promise((resolve, reject) => { 159 | logger.info('EnrollmentResponse >>> historyById'); 160 | 161 | // Common search params 162 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 163 | 164 | // Search Result params 165 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 166 | 167 | // Resource Specific params 168 | let identifier = args['identifier']; 169 | let organization = args['organization']; 170 | let request = args['request']; 171 | 172 | // TODO: Build query from Parameters 173 | 174 | // TODO: Query database 175 | 176 | let EnrollmentResponse = getEnrollmentResponse(base_version); 177 | 178 | // Cast all results to EnrollmentResponse Class 179 | let enrollmentresponse_resource = new EnrollmentResponse(); 180 | 181 | // Return Array 182 | resolve([enrollmentresponse_resource]); 183 | }); 184 | 185 | -------------------------------------------------------------------------------- /src/services/researchsubject/researchsubject.service.js: -------------------------------------------------------------------------------- 1 | /*eslint no-unused-vars: "warn"*/ 2 | 3 | const { RESOURCES } = require('@asymmetrik/node-fhir-server-core').constants; 4 | const FHIRServer = require('@asymmetrik/node-fhir-server-core'); 5 | 6 | let getResearchSubject = (base_version) => { 7 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.RESEARCHSUBJECT));}; 8 | 9 | let getMeta = (base_version) => { 10 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.META));}; 11 | 12 | module.exports.search = (args, context, logger) => new Promise((resolve, reject) => { 13 | logger.info('ResearchSubject >>> search'); 14 | 15 | // Common search params 16 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 17 | 18 | // Search Result params 19 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 20 | 21 | // Resource Specific params 22 | let date = args['date']; 23 | let identifier = args['identifier']; 24 | let individual = args['individual']; 25 | let patient = args['patient']; 26 | let status = args['status']; 27 | 28 | // TODO: Build query from Parameters 29 | 30 | // TODO: Query database 31 | 32 | let ResearchSubject = getResearchSubject(base_version); 33 | 34 | // Cast all results to ResearchSubject Class 35 | let researchsubject_resource = new ResearchSubject(); 36 | // TODO: Set data with constructor or setter methods 37 | researchsubject_resource.id = 'test id'; 38 | 39 | // Return Array 40 | resolve([researchsubject_resource]); 41 | }); 42 | 43 | module.exports.searchById = (args, context, logger) => new Promise((resolve, reject) => { 44 | logger.info('ResearchSubject >>> searchById'); 45 | 46 | let { base_version, id } = args; 47 | 48 | let ResearchSubject = getResearchSubject(base_version); 49 | 50 | // TODO: Build query from Parameters 51 | 52 | // TODO: Query database 53 | 54 | // Cast result to ResearchSubject Class 55 | let researchsubject_resource = new ResearchSubject(); 56 | // TODO: Set data with constructor or setter methods 57 | researchsubject_resource.id = 'test id'; 58 | 59 | // Return resource class 60 | // resolve(researchsubject_resource); 61 | resolve(); 62 | }); 63 | 64 | module.exports.create = (args, context, logger) => new Promise((resolve, reject) => { 65 | logger.info('ResearchSubject >>> create'); 66 | 67 | let { base_version, id, resource } = args; 68 | 69 | let ResearchSubject = getResearchSubject(base_version); 70 | let Meta = getMeta(base_version); 71 | 72 | // TODO: determine if client/server sets ID 73 | 74 | // Cast resource to ResearchSubject Class 75 | let researchsubject_resource = new ResearchSubject(resource); 76 | researchsubject_resource.meta = new Meta(); 77 | // TODO: set meta info 78 | 79 | // TODO: save record to database 80 | 81 | // Return Id 82 | resolve({ id: researchsubject_resource.id }); 83 | }); 84 | 85 | module.exports.update = (args, context, logger) => new Promise((resolve, reject) => { 86 | logger.info('ResearchSubject >>> update'); 87 | 88 | let { base_version, id, resource } = args; 89 | 90 | let ResearchSubject = getResearchSubject(base_version); 91 | let Meta = getMeta(base_version); 92 | 93 | // Cast resource to ResearchSubject Class 94 | let researchsubject_resource = new ResearchSubject(resource); 95 | researchsubject_resource.meta = new Meta(); 96 | // TODO: set meta info, increment meta ID 97 | 98 | // TODO: save record to database 99 | 100 | // Return id, if recorded was created or updated, new meta version id 101 | resolve({ id: researchsubject_resource.id, created: false, resource_version: researchsubject_resource.meta.versionId }); 102 | }); 103 | 104 | module.exports.remove = (args, context, logger) => new Promise((resolve, reject) => { 105 | logger.info('ResearchSubject >>> remove'); 106 | 107 | let { id } = args; 108 | 109 | // TODO: delete record in database (soft/hard) 110 | 111 | // Return number of records deleted 112 | resolve({ deleted: 0 }); 113 | }); 114 | 115 | module.exports.searchByVersionId = (args, context, logger) => new Promise((resolve, reject) => { 116 | logger.info('ResearchSubject >>> searchByVersionId'); 117 | 118 | let { base_version, id, version_id } = args; 119 | 120 | let ResearchSubject = getResearchSubject(base_version); 121 | 122 | // TODO: Build query from Parameters 123 | 124 | // TODO: Query database 125 | 126 | // Cast result to ResearchSubject Class 127 | let researchsubject_resource = new ResearchSubject(); 128 | 129 | // Return resource class 130 | resolve(researchsubject_resource); 131 | }); 132 | 133 | module.exports.history = (args, context, logger) => new Promise((resolve, reject) => { 134 | logger.info('ResearchSubject >>> history'); 135 | 136 | // Common search params 137 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 138 | 139 | // Search Result params 140 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 141 | 142 | // Resource Specific params 143 | let date = args['date']; 144 | let identifier = args['identifier']; 145 | let individual = args['individual']; 146 | let patient = args['patient']; 147 | let status = args['status']; 148 | 149 | // TODO: Build query from Parameters 150 | 151 | // TODO: Query database 152 | 153 | let ResearchSubject = getResearchSubject(base_version); 154 | 155 | // Cast all results to ResearchSubject Class 156 | let researchsubject_resource = new ResearchSubject(); 157 | 158 | // Return Array 159 | resolve([researchsubject_resource]); 160 | }); 161 | 162 | module.exports.historyById = (args, context, logger) => new Promise((resolve, reject) => { 163 | logger.info('ResearchSubject >>> historyById'); 164 | 165 | // Common search params 166 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 167 | 168 | // Search Result params 169 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 170 | 171 | // Resource Specific params 172 | let date = args['date']; 173 | let identifier = args['identifier']; 174 | let individual = args['individual']; 175 | let patient = args['patient']; 176 | let status = args['status']; 177 | 178 | // TODO: Build query from Parameters 179 | 180 | // TODO: Query database 181 | 182 | let ResearchSubject = getResearchSubject(base_version); 183 | 184 | // Cast all results to ResearchSubject Class 185 | let researchsubject_resource = new ResearchSubject(); 186 | 187 | // Return Array 188 | resolve([researchsubject_resource]); 189 | }); 190 | 191 | -------------------------------------------------------------------------------- /src/services/subscription/subscription.service.js: -------------------------------------------------------------------------------- 1 | /*eslint no-unused-vars: "warn"*/ 2 | 3 | const { RESOURCES } = require('@asymmetrik/node-fhir-server-core').constants; 4 | const FHIRServer = require('@asymmetrik/node-fhir-server-core'); 5 | 6 | let getSubscription = (base_version) => { 7 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.SUBSCRIPTION));}; 8 | 9 | let getMeta = (base_version) => { 10 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.META));}; 11 | 12 | module.exports.search = (args, context, logger) => new Promise((resolve, reject) => { 13 | logger.info('Subscription >>> search'); 14 | 15 | // Common search params 16 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 17 | 18 | // Search Result params 19 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 20 | 21 | // Resource Specific params 22 | let add_tag = args['add-tag']; 23 | let contact = args['contact']; 24 | let criteria = args['criteria']; 25 | let payload = args['payload']; 26 | let status = args['status']; 27 | let type = args['type']; 28 | let url = args['url']; 29 | 30 | // TODO: Build query from Parameters 31 | 32 | // TODO: Query database 33 | 34 | let Subscription = getSubscription(base_version); 35 | 36 | // Cast all results to Subscription Class 37 | let subscription_resource = new Subscription(); 38 | // TODO: Set data with constructor or setter methods 39 | subscription_resource.id = 'test id'; 40 | 41 | // Return Array 42 | resolve([subscription_resource]); 43 | }); 44 | 45 | module.exports.searchById = (args, context, logger) => new Promise((resolve, reject) => { 46 | logger.info('Subscription >>> searchById'); 47 | 48 | let { base_version, id } = args; 49 | 50 | let Subscription = getSubscription(base_version); 51 | 52 | // TODO: Build query from Parameters 53 | 54 | // TODO: Query database 55 | 56 | // Cast result to Subscription Class 57 | let subscription_resource = new Subscription(); 58 | // TODO: Set data with constructor or setter methods 59 | subscription_resource.id = 'test id'; 60 | 61 | // Return resource class 62 | // resolve(subscription_resource); 63 | resolve(); 64 | }); 65 | 66 | module.exports.create = (args, context, logger) => new Promise((resolve, reject) => { 67 | logger.info('Subscription >>> create'); 68 | 69 | let { base_version, id, resource } = args; 70 | 71 | let Subscription = getSubscription(base_version); 72 | let Meta = getMeta(base_version); 73 | 74 | // TODO: determine if client/server sets ID 75 | 76 | // Cast resource to Subscription Class 77 | let subscription_resource = new Subscription(resource); 78 | subscription_resource.meta = new Meta(); 79 | // TODO: set meta info 80 | 81 | // TODO: save record to database 82 | 83 | // Return Id 84 | resolve({ id: subscription_resource.id }); 85 | }); 86 | 87 | module.exports.update = (args, context, logger) => new Promise((resolve, reject) => { 88 | logger.info('Subscription >>> update'); 89 | 90 | let { base_version, id, resource } = args; 91 | 92 | let Subscription = getSubscription(base_version); 93 | let Meta = getMeta(base_version); 94 | 95 | // Cast resource to Subscription Class 96 | let subscription_resource = new Subscription(resource); 97 | subscription_resource.meta = new Meta(); 98 | // TODO: set meta info, increment meta ID 99 | 100 | // TODO: save record to database 101 | 102 | // Return id, if recorded was created or updated, new meta version id 103 | resolve({ id: subscription_resource.id, created: false, resource_version: subscription_resource.meta.versionId }); 104 | }); 105 | 106 | module.exports.remove = (args, context, logger) => new Promise((resolve, reject) => { 107 | logger.info('Subscription >>> remove'); 108 | 109 | let { id } = args; 110 | 111 | // TODO: delete record in database (soft/hard) 112 | 113 | // Return number of records deleted 114 | resolve({ deleted: 0 }); 115 | }); 116 | 117 | module.exports.searchByVersionId = (args, context, logger) => new Promise((resolve, reject) => { 118 | logger.info('Subscription >>> searchByVersionId'); 119 | 120 | let { base_version, id, version_id } = args; 121 | 122 | let Subscription = getSubscription(base_version); 123 | 124 | // TODO: Build query from Parameters 125 | 126 | // TODO: Query database 127 | 128 | // Cast result to Subscription Class 129 | let subscription_resource = new Subscription(); 130 | 131 | // Return resource class 132 | resolve(subscription_resource); 133 | }); 134 | 135 | module.exports.history = (args, context, logger) => new Promise((resolve, reject) => { 136 | logger.info('Subscription >>> history'); 137 | 138 | // Common search params 139 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 140 | 141 | // Search Result params 142 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 143 | 144 | // Resource Specific params 145 | let add_tag = args['add-tag']; 146 | let contact = args['contact']; 147 | let criteria = args['criteria']; 148 | let payload = args['payload']; 149 | let status = args['status']; 150 | let type = args['type']; 151 | let url = args['url']; 152 | 153 | // TODO: Build query from Parameters 154 | 155 | // TODO: Query database 156 | 157 | let Subscription = getSubscription(base_version); 158 | 159 | // Cast all results to Subscription Class 160 | let subscription_resource = new Subscription(); 161 | 162 | // Return Array 163 | resolve([subscription_resource]); 164 | }); 165 | 166 | module.exports.historyById = (args, context, logger) => new Promise((resolve, reject) => { 167 | logger.info('Subscription >>> historyById'); 168 | 169 | // Common search params 170 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 171 | 172 | // Search Result params 173 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 174 | 175 | // Resource Specific params 176 | let add_tag = args['add-tag']; 177 | let contact = args['contact']; 178 | let criteria = args['criteria']; 179 | let payload = args['payload']; 180 | let status = args['status']; 181 | let type = args['type']; 182 | let url = args['url']; 183 | 184 | // TODO: Build query from Parameters 185 | 186 | // TODO: Query database 187 | 188 | let Subscription = getSubscription(base_version); 189 | 190 | // Cast all results to Subscription Class 191 | let subscription_resource = new Subscription(); 192 | 193 | // Return Array 194 | resolve([subscription_resource]); 195 | }); 196 | 197 | -------------------------------------------------------------------------------- /src/services/detectedissue/detectedissue.service.js: -------------------------------------------------------------------------------- 1 | /*eslint no-unused-vars: "warn"*/ 2 | 3 | const { RESOURCES } = require('@asymmetrik/node-fhir-server-core').constants; 4 | const FHIRServer = require('@asymmetrik/node-fhir-server-core'); 5 | 6 | let getDetectedIssue = (base_version) => { 7 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.DETECTEDISSUE));}; 8 | 9 | let getMeta = (base_version) => { 10 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.META));}; 11 | 12 | module.exports.search = (args, context, logger) => new Promise((resolve, reject) => { 13 | logger.info('DetectedIssue >>> search'); 14 | 15 | // Common search params 16 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 17 | 18 | // Search Result params 19 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 20 | 21 | // Resource Specific params 22 | let author = args['author']; 23 | let category = args['category']; 24 | let date = args['date']; 25 | let identifier = args['identifier']; 26 | let implicated = args['implicated']; 27 | let patient = args['patient']; 28 | 29 | // TODO: Build query from Parameters 30 | 31 | // TODO: Query database 32 | 33 | let DetectedIssue = getDetectedIssue(base_version); 34 | 35 | // Cast all results to DetectedIssue Class 36 | let detectedissue_resource = new DetectedIssue(); 37 | // TODO: Set data with constructor or setter methods 38 | detectedissue_resource.id = 'test id'; 39 | 40 | // Return Array 41 | resolve([detectedissue_resource]); 42 | }); 43 | 44 | module.exports.searchById = (args, context, logger) => new Promise((resolve, reject) => { 45 | logger.info('DetectedIssue >>> searchById'); 46 | 47 | let { base_version, id } = args; 48 | 49 | let DetectedIssue = getDetectedIssue(base_version); 50 | 51 | // TODO: Build query from Parameters 52 | 53 | // TODO: Query database 54 | 55 | // Cast result to DetectedIssue Class 56 | let detectedissue_resource = new DetectedIssue(); 57 | // TODO: Set data with constructor or setter methods 58 | detectedissue_resource.id = 'test id'; 59 | 60 | // Return resource class 61 | // resolve(detectedissue_resource); 62 | resolve(); 63 | }); 64 | 65 | module.exports.create = (args, context, logger) => new Promise((resolve, reject) => { 66 | logger.info('DetectedIssue >>> create'); 67 | 68 | let { base_version, id, resource } = args; 69 | 70 | let DetectedIssue = getDetectedIssue(base_version); 71 | let Meta = getMeta(base_version); 72 | 73 | // TODO: determine if client/server sets ID 74 | 75 | // Cast resource to DetectedIssue Class 76 | let detectedissue_resource = new DetectedIssue(resource); 77 | detectedissue_resource.meta = new Meta(); 78 | // TODO: set meta info 79 | 80 | // TODO: save record to database 81 | 82 | // Return Id 83 | resolve({ id: detectedissue_resource.id }); 84 | }); 85 | 86 | module.exports.update = (args, context, logger) => new Promise((resolve, reject) => { 87 | logger.info('DetectedIssue >>> update'); 88 | 89 | let { base_version, id, resource } = args; 90 | 91 | let DetectedIssue = getDetectedIssue(base_version); 92 | let Meta = getMeta(base_version); 93 | 94 | // Cast resource to DetectedIssue Class 95 | let detectedissue_resource = new DetectedIssue(resource); 96 | detectedissue_resource.meta = new Meta(); 97 | // TODO: set meta info, increment meta ID 98 | 99 | // TODO: save record to database 100 | 101 | // Return id, if recorded was created or updated, new meta version id 102 | resolve({ id: detectedissue_resource.id, created: false, resource_version: detectedissue_resource.meta.versionId }); 103 | }); 104 | 105 | module.exports.remove = (args, context, logger) => new Promise((resolve, reject) => { 106 | logger.info('DetectedIssue >>> remove'); 107 | 108 | let { id } = args; 109 | 110 | // TODO: delete record in database (soft/hard) 111 | 112 | // Return number of records deleted 113 | resolve({ deleted: 0 }); 114 | }); 115 | 116 | module.exports.searchByVersionId = (args, context, logger) => new Promise((resolve, reject) => { 117 | logger.info('DetectedIssue >>> searchByVersionId'); 118 | 119 | let { base_version, id, version_id } = args; 120 | 121 | let DetectedIssue = getDetectedIssue(base_version); 122 | 123 | // TODO: Build query from Parameters 124 | 125 | // TODO: Query database 126 | 127 | // Cast result to DetectedIssue Class 128 | let detectedissue_resource = new DetectedIssue(); 129 | 130 | // Return resource class 131 | resolve(detectedissue_resource); 132 | }); 133 | 134 | module.exports.history = (args, context, logger) => new Promise((resolve, reject) => { 135 | logger.info('DetectedIssue >>> history'); 136 | 137 | // Common search params 138 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 139 | 140 | // Search Result params 141 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 142 | 143 | // Resource Specific params 144 | let author = args['author']; 145 | let category = args['category']; 146 | let date = args['date']; 147 | let identifier = args['identifier']; 148 | let implicated = args['implicated']; 149 | let patient = args['patient']; 150 | 151 | // TODO: Build query from Parameters 152 | 153 | // TODO: Query database 154 | 155 | let DetectedIssue = getDetectedIssue(base_version); 156 | 157 | // Cast all results to DetectedIssue Class 158 | let detectedissue_resource = new DetectedIssue(); 159 | 160 | // Return Array 161 | resolve([detectedissue_resource]); 162 | }); 163 | 164 | module.exports.historyById = (args, context, logger) => new Promise((resolve, reject) => { 165 | logger.info('DetectedIssue >>> historyById'); 166 | 167 | // Common search params 168 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 169 | 170 | // Search Result params 171 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 172 | 173 | // Resource Specific params 174 | let author = args['author']; 175 | let category = args['category']; 176 | let date = args['date']; 177 | let identifier = args['identifier']; 178 | let implicated = args['implicated']; 179 | let patient = args['patient']; 180 | 181 | // TODO: Build query from Parameters 182 | 183 | // TODO: Query database 184 | 185 | let DetectedIssue = getDetectedIssue(base_version); 186 | 187 | // Cast all results to DetectedIssue Class 188 | let detectedissue_resource = new DetectedIssue(); 189 | 190 | // Return Array 191 | resolve([detectedissue_resource]); 192 | }); 193 | 194 | -------------------------------------------------------------------------------- /src/services/supplyrequest/supplyrequest.service.js: -------------------------------------------------------------------------------- 1 | /*eslint no-unused-vars: "warn"*/ 2 | 3 | const { RESOURCES } = require('@asymmetrik/node-fhir-server-core').constants; 4 | const FHIRServer = require('@asymmetrik/node-fhir-server-core'); 5 | 6 | let getSupplyRequest = (base_version) => { 7 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.SUPPLYREQUEST));}; 8 | 9 | let getMeta = (base_version) => { 10 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.META));}; 11 | 12 | module.exports.search = (args, context, logger) => new Promise((resolve, reject) => { 13 | logger.info('SupplyRequest >>> search'); 14 | 15 | // Common search params 16 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 17 | 18 | // Search Result params 19 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 20 | 21 | // Resource Specific params 22 | let category = args['category']; 23 | let date = args['date']; 24 | let identifier = args['identifier']; 25 | let requester = args['requester']; 26 | let status = args['status']; 27 | let supplier = args['supplier']; 28 | 29 | // TODO: Build query from Parameters 30 | 31 | // TODO: Query database 32 | 33 | let SupplyRequest = getSupplyRequest(base_version); 34 | 35 | // Cast all results to SupplyRequest Class 36 | let supplyrequest_resource = new SupplyRequest(); 37 | // TODO: Set data with constructor or setter methods 38 | supplyrequest_resource.id = 'test id'; 39 | 40 | // Return Array 41 | resolve([supplyrequest_resource]); 42 | }); 43 | 44 | module.exports.searchById = (args, context, logger) => new Promise((resolve, reject) => { 45 | logger.info('SupplyRequest >>> searchById'); 46 | 47 | let { base_version, id } = args; 48 | 49 | let SupplyRequest = getSupplyRequest(base_version); 50 | 51 | // TODO: Build query from Parameters 52 | 53 | // TODO: Query database 54 | 55 | // Cast result to SupplyRequest Class 56 | let supplyrequest_resource = new SupplyRequest(); 57 | // TODO: Set data with constructor or setter methods 58 | supplyrequest_resource.id = 'test id'; 59 | 60 | // Return resource class 61 | // resolve(supplyrequest_resource); 62 | resolve(); 63 | }); 64 | 65 | module.exports.create = (args, context, logger) => new Promise((resolve, reject) => { 66 | logger.info('SupplyRequest >>> create'); 67 | 68 | let { base_version, id, resource } = args; 69 | 70 | let SupplyRequest = getSupplyRequest(base_version); 71 | let Meta = getMeta(base_version); 72 | 73 | // TODO: determine if client/server sets ID 74 | 75 | // Cast resource to SupplyRequest Class 76 | let supplyrequest_resource = new SupplyRequest(resource); 77 | supplyrequest_resource.meta = new Meta(); 78 | // TODO: set meta info 79 | 80 | // TODO: save record to database 81 | 82 | // Return Id 83 | resolve({ id: supplyrequest_resource.id }); 84 | }); 85 | 86 | module.exports.update = (args, context, logger) => new Promise((resolve, reject) => { 87 | logger.info('SupplyRequest >>> update'); 88 | 89 | let { base_version, id, resource } = args; 90 | 91 | let SupplyRequest = getSupplyRequest(base_version); 92 | let Meta = getMeta(base_version); 93 | 94 | // Cast resource to SupplyRequest Class 95 | let supplyrequest_resource = new SupplyRequest(resource); 96 | supplyrequest_resource.meta = new Meta(); 97 | // TODO: set meta info, increment meta ID 98 | 99 | // TODO: save record to database 100 | 101 | // Return id, if recorded was created or updated, new meta version id 102 | resolve({ id: supplyrequest_resource.id, created: false, resource_version: supplyrequest_resource.meta.versionId }); 103 | }); 104 | 105 | module.exports.remove = (args, context, logger) => new Promise((resolve, reject) => { 106 | logger.info('SupplyRequest >>> remove'); 107 | 108 | let { id } = args; 109 | 110 | // TODO: delete record in database (soft/hard) 111 | 112 | // Return number of records deleted 113 | resolve({ deleted: 0 }); 114 | }); 115 | 116 | module.exports.searchByVersionId = (args, context, logger) => new Promise((resolve, reject) => { 117 | logger.info('SupplyRequest >>> searchByVersionId'); 118 | 119 | let { base_version, id, version_id } = args; 120 | 121 | let SupplyRequest = getSupplyRequest(base_version); 122 | 123 | // TODO: Build query from Parameters 124 | 125 | // TODO: Query database 126 | 127 | // Cast result to SupplyRequest Class 128 | let supplyrequest_resource = new SupplyRequest(); 129 | 130 | // Return resource class 131 | resolve(supplyrequest_resource); 132 | }); 133 | 134 | module.exports.history = (args, context, logger) => new Promise((resolve, reject) => { 135 | logger.info('SupplyRequest >>> history'); 136 | 137 | // Common search params 138 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 139 | 140 | // Search Result params 141 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 142 | 143 | // Resource Specific params 144 | let category = args['category']; 145 | let date = args['date']; 146 | let identifier = args['identifier']; 147 | let requester = args['requester']; 148 | let status = args['status']; 149 | let supplier = args['supplier']; 150 | 151 | // TODO: Build query from Parameters 152 | 153 | // TODO: Query database 154 | 155 | let SupplyRequest = getSupplyRequest(base_version); 156 | 157 | // Cast all results to SupplyRequest Class 158 | let supplyrequest_resource = new SupplyRequest(); 159 | 160 | // Return Array 161 | resolve([supplyrequest_resource]); 162 | }); 163 | 164 | module.exports.historyById = (args, context, logger) => new Promise((resolve, reject) => { 165 | logger.info('SupplyRequest >>> historyById'); 166 | 167 | // Common search params 168 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 169 | 170 | // Search Result params 171 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 172 | 173 | // Resource Specific params 174 | let category = args['category']; 175 | let date = args['date']; 176 | let identifier = args['identifier']; 177 | let requester = args['requester']; 178 | let status = args['status']; 179 | let supplier = args['supplier']; 180 | 181 | // TODO: Build query from Parameters 182 | 183 | // TODO: Query database 184 | 185 | let SupplyRequest = getSupplyRequest(base_version); 186 | 187 | // Cast all results to SupplyRequest Class 188 | let supplyrequest_resource = new SupplyRequest(); 189 | 190 | // Return Array 191 | resolve([supplyrequest_resource]); 192 | }); 193 | 194 | -------------------------------------------------------------------------------- /src/services/enrollmentrequest/enrollmentrequest.service.js: -------------------------------------------------------------------------------- 1 | /*eslint no-unused-vars: "warn"*/ 2 | 3 | const { RESOURCES } = require('@asymmetrik/node-fhir-server-core').constants; 4 | const FHIRServer = require('@asymmetrik/node-fhir-server-core'); 5 | 6 | let getEnrollmentRequest = (base_version) => { 7 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.ENROLLMENTREQUEST));}; 8 | 9 | let getMeta = (base_version) => { 10 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.META));}; 11 | 12 | module.exports.search = (args, context, logger) => new Promise((resolve, reject) => { 13 | logger.info('EnrollmentRequest >>> search'); 14 | 15 | // Common search params 16 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 17 | 18 | // Search Result params 19 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 20 | 21 | // Resource Specific params 22 | let identifier = args['identifier']; 23 | let organization = args['organization']; 24 | let patient = args['patient']; 25 | let subject = args['subject']; 26 | 27 | // TODO: Build query from Parameters 28 | 29 | // TODO: Query database 30 | 31 | let EnrollmentRequest = getEnrollmentRequest(base_version); 32 | 33 | // Cast all results to EnrollmentRequest Class 34 | let enrollmentrequest_resource = new EnrollmentRequest(); 35 | // TODO: Set data with constructor or setter methods 36 | enrollmentrequest_resource.id = 'test id'; 37 | 38 | // Return Array 39 | resolve([enrollmentrequest_resource]); 40 | }); 41 | 42 | module.exports.searchById = (args, context, logger) => new Promise((resolve, reject) => { 43 | logger.info('EnrollmentRequest >>> searchById'); 44 | 45 | let { base_version, id } = args; 46 | 47 | let EnrollmentRequest = getEnrollmentRequest(base_version); 48 | 49 | // TODO: Build query from Parameters 50 | 51 | // TODO: Query database 52 | 53 | // Cast result to EnrollmentRequest Class 54 | let enrollmentrequest_resource = new EnrollmentRequest(); 55 | // TODO: Set data with constructor or setter methods 56 | enrollmentrequest_resource.id = 'test id'; 57 | 58 | // Return resource class 59 | // resolve(enrollmentrequest_resource); 60 | resolve(); 61 | }); 62 | 63 | module.exports.create = (args, context, logger) => new Promise((resolve, reject) => { 64 | logger.info('EnrollmentRequest >>> create'); 65 | 66 | let { base_version, id, resource } = args; 67 | 68 | let EnrollmentRequest = getEnrollmentRequest(base_version); 69 | let Meta = getMeta(base_version); 70 | 71 | // TODO: determine if client/server sets ID 72 | 73 | // Cast resource to EnrollmentRequest Class 74 | let enrollmentrequest_resource = new EnrollmentRequest(resource); 75 | enrollmentrequest_resource.meta = new Meta(); 76 | // TODO: set meta info 77 | 78 | // TODO: save record to database 79 | 80 | // Return Id 81 | resolve({ id: enrollmentrequest_resource.id }); 82 | }); 83 | 84 | module.exports.update = (args, context, logger) => new Promise((resolve, reject) => { 85 | logger.info('EnrollmentRequest >>> update'); 86 | 87 | let { base_version, id, resource } = args; 88 | 89 | let EnrollmentRequest = getEnrollmentRequest(base_version); 90 | let Meta = getMeta(base_version); 91 | 92 | // Cast resource to EnrollmentRequest Class 93 | let enrollmentrequest_resource = new EnrollmentRequest(resource); 94 | enrollmentrequest_resource.meta = new Meta(); 95 | // TODO: set meta info, increment meta ID 96 | 97 | // TODO: save record to database 98 | 99 | // Return id, if recorded was created or updated, new meta version id 100 | resolve({ id: enrollmentrequest_resource.id, created: false, resource_version: enrollmentrequest_resource.meta.versionId }); 101 | }); 102 | 103 | module.exports.remove = (args, context, logger) => new Promise((resolve, reject) => { 104 | logger.info('EnrollmentRequest >>> remove'); 105 | 106 | let { id } = args; 107 | 108 | // TODO: delete record in database (soft/hard) 109 | 110 | // Return number of records deleted 111 | resolve({ deleted: 0 }); 112 | }); 113 | 114 | module.exports.searchByVersionId = (args, context, logger) => new Promise((resolve, reject) => { 115 | logger.info('EnrollmentRequest >>> searchByVersionId'); 116 | 117 | let { base_version, id, version_id } = args; 118 | 119 | let EnrollmentRequest = getEnrollmentRequest(base_version); 120 | 121 | // TODO: Build query from Parameters 122 | 123 | // TODO: Query database 124 | 125 | // Cast result to EnrollmentRequest Class 126 | let enrollmentrequest_resource = new EnrollmentRequest(); 127 | 128 | // Return resource class 129 | resolve(enrollmentrequest_resource); 130 | }); 131 | 132 | module.exports.history = (args, context, logger) => new Promise((resolve, reject) => { 133 | logger.info('EnrollmentRequest >>> history'); 134 | 135 | // Common search params 136 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 137 | 138 | // Search Result params 139 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 140 | 141 | // Resource Specific params 142 | let identifier = args['identifier']; 143 | let organization = args['organization']; 144 | let patient = args['patient']; 145 | let subject = args['subject']; 146 | 147 | // TODO: Build query from Parameters 148 | 149 | // TODO: Query database 150 | 151 | let EnrollmentRequest = getEnrollmentRequest(base_version); 152 | 153 | // Cast all results to EnrollmentRequest Class 154 | let enrollmentrequest_resource = new EnrollmentRequest(); 155 | 156 | // Return Array 157 | resolve([enrollmentrequest_resource]); 158 | }); 159 | 160 | module.exports.historyById = (args, context, logger) => new Promise((resolve, reject) => { 161 | logger.info('EnrollmentRequest >>> historyById'); 162 | 163 | // Common search params 164 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 165 | 166 | // Search Result params 167 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 168 | 169 | // Resource Specific params 170 | let identifier = args['identifier']; 171 | let organization = args['organization']; 172 | let patient = args['patient']; 173 | let subject = args['subject']; 174 | 175 | // TODO: Build query from Parameters 176 | 177 | // TODO: Query database 178 | 179 | let EnrollmentRequest = getEnrollmentRequest(base_version); 180 | 181 | // Cast all results to EnrollmentRequest Class 182 | let enrollmentrequest_resource = new EnrollmentRequest(); 183 | 184 | // Return Array 185 | resolve([enrollmentrequest_resource]); 186 | }); 187 | 188 | -------------------------------------------------------------------------------- /src/services/contract/contract.service.js: -------------------------------------------------------------------------------- 1 | /*eslint no-unused-vars: "warn"*/ 2 | 3 | const { RESOURCES } = require('@asymmetrik/node-fhir-server-core').constants; 4 | const FHIRServer = require('@asymmetrik/node-fhir-server-core'); 5 | 6 | let getContract = (base_version) => { 7 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.CONTRACT));}; 8 | 9 | let getMeta = (base_version) => { 10 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.META));}; 11 | 12 | module.exports.search = (args, context, logger) => new Promise((resolve, reject) => { 13 | logger.info('Contract >>> search'); 14 | 15 | // Common search params 16 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 17 | 18 | // Search Result params 19 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 20 | 21 | // Resource Specific params 22 | let agent = args['agent']; 23 | let authority = args['authority']; 24 | let domain = args['domain']; 25 | let identifier = args['identifier']; 26 | let issued = args['issued']; 27 | let patient = args['patient']; 28 | let signer = args['signer']; 29 | let subject = args['subject']; 30 | let term_topic = args['term-topic']; 31 | 32 | // TODO: Build query from Parameters 33 | 34 | // TODO: Query database 35 | 36 | let Contract = getContract(base_version); 37 | 38 | // Cast all results to Contract Class 39 | let contract_resource = new Contract(); 40 | // TODO: Set data with constructor or setter methods 41 | contract_resource.id = 'test id'; 42 | 43 | // Return Array 44 | resolve([contract_resource]); 45 | }); 46 | 47 | module.exports.searchById = (args, context, logger) => new Promise((resolve, reject) => { 48 | logger.info('Contract >>> searchById'); 49 | 50 | let { base_version, id } = args; 51 | 52 | let Contract = getContract(base_version); 53 | 54 | // TODO: Build query from Parameters 55 | 56 | // TODO: Query database 57 | 58 | // Cast result to Contract Class 59 | let contract_resource = new Contract(); 60 | // TODO: Set data with constructor or setter methods 61 | contract_resource.id = 'test id'; 62 | 63 | // Return resource class 64 | // resolve(contract_resource); 65 | resolve(); 66 | }); 67 | 68 | module.exports.create = (args, context, logger) => new Promise((resolve, reject) => { 69 | logger.info('Contract >>> create'); 70 | 71 | let { base_version, id, resource } = args; 72 | 73 | let Contract = getContract(base_version); 74 | let Meta = getMeta(base_version); 75 | 76 | // TODO: determine if client/server sets ID 77 | 78 | // Cast resource to Contract Class 79 | let contract_resource = new Contract(resource); 80 | contract_resource.meta = new Meta(); 81 | // TODO: set meta info 82 | 83 | // TODO: save record to database 84 | 85 | // Return Id 86 | resolve({ id: contract_resource.id }); 87 | }); 88 | 89 | module.exports.update = (args, context, logger) => new Promise((resolve, reject) => { 90 | logger.info('Contract >>> update'); 91 | 92 | let { base_version, id, resource } = args; 93 | 94 | let Contract = getContract(base_version); 95 | let Meta = getMeta(base_version); 96 | 97 | // Cast resource to Contract Class 98 | let contract_resource = new Contract(resource); 99 | contract_resource.meta = new Meta(); 100 | // TODO: set meta info, increment meta ID 101 | 102 | // TODO: save record to database 103 | 104 | // Return id, if recorded was created or updated, new meta version id 105 | resolve({ id: contract_resource.id, created: false, resource_version: contract_resource.meta.versionId }); 106 | }); 107 | 108 | module.exports.remove = (args, context, logger) => new Promise((resolve, reject) => { 109 | logger.info('Contract >>> remove'); 110 | 111 | let { id } = args; 112 | 113 | // TODO: delete record in database (soft/hard) 114 | 115 | // Return number of records deleted 116 | resolve({ deleted: 0 }); 117 | }); 118 | 119 | module.exports.searchByVersionId = (args, context, logger) => new Promise((resolve, reject) => { 120 | logger.info('Contract >>> searchByVersionId'); 121 | 122 | let { base_version, id, version_id } = args; 123 | 124 | let Contract = getContract(base_version); 125 | 126 | // TODO: Build query from Parameters 127 | 128 | // TODO: Query database 129 | 130 | // Cast result to Contract Class 131 | let contract_resource = new Contract(); 132 | 133 | // Return resource class 134 | resolve(contract_resource); 135 | }); 136 | 137 | module.exports.history = (args, context, logger) => new Promise((resolve, reject) => { 138 | logger.info('Contract >>> history'); 139 | 140 | // Common search params 141 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 142 | 143 | // Search Result params 144 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 145 | 146 | // Resource Specific params 147 | let agent = args['agent']; 148 | let authority = args['authority']; 149 | let domain = args['domain']; 150 | let identifier = args['identifier']; 151 | let issued = args['issued']; 152 | let patient = args['patient']; 153 | let signer = args['signer']; 154 | let subject = args['subject']; 155 | let term_topic = args['term-topic']; 156 | 157 | // TODO: Build query from Parameters 158 | 159 | // TODO: Query database 160 | 161 | let Contract = getContract(base_version); 162 | 163 | // Cast all results to Contract Class 164 | let contract_resource = new Contract(); 165 | 166 | // Return Array 167 | resolve([contract_resource]); 168 | }); 169 | 170 | module.exports.historyById = (args, context, logger) => new Promise((resolve, reject) => { 171 | logger.info('Contract >>> historyById'); 172 | 173 | // Common search params 174 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 175 | 176 | // Search Result params 177 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 178 | 179 | // Resource Specific params 180 | let agent = args['agent']; 181 | let authority = args['authority']; 182 | let domain = args['domain']; 183 | let identifier = args['identifier']; 184 | let issued = args['issued']; 185 | let patient = args['patient']; 186 | let signer = args['signer']; 187 | let subject = args['subject']; 188 | let term_topic = args['term-topic']; 189 | 190 | // TODO: Build query from Parameters 191 | 192 | // TODO: Query database 193 | 194 | let Contract = getContract(base_version); 195 | 196 | // Cast all results to Contract Class 197 | let contract_resource = new Contract(); 198 | 199 | // Return Array 200 | resolve([contract_resource]); 201 | }); 202 | 203 | -------------------------------------------------------------------------------- /src/services/careteam/careteam.service.js: -------------------------------------------------------------------------------- 1 | /*eslint no-unused-vars: "warn"*/ 2 | 3 | const { RESOURCES } = require('@asymmetrik/node-fhir-server-core').constants; 4 | const FHIRServer = require('@asymmetrik/node-fhir-server-core'); 5 | 6 | let getCareTeam = (base_version) => { 7 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.CARETEAM));}; 8 | 9 | let getMeta = (base_version) => { 10 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.META));}; 11 | 12 | module.exports.search = (args, context, logger) => new Promise((resolve, reject) => { 13 | logger.info('CareTeam >>> search'); 14 | 15 | // Common search params 16 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 17 | 18 | // Search Result params 19 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 20 | 21 | // Resource Specific params 22 | let category = args['category']; 23 | let _context = args['_context']; 24 | let date = args['date']; 25 | let encounter = args['encounter']; 26 | let identifier = args['identifier']; 27 | let participant = args['participant']; 28 | let patient = args['patient']; 29 | let status = args['status']; 30 | let subject = args['subject']; 31 | 32 | // TODO: Build query from Parameters 33 | 34 | // TODO: Query database 35 | 36 | let CareTeam = getCareTeam(base_version); 37 | 38 | // Cast all results to CareTeam Class 39 | let careteam_resource = new CareTeam(); 40 | // TODO: Set data with constructor or setter methods 41 | careteam_resource.id = 'test id'; 42 | 43 | // Return Array 44 | resolve([careteam_resource]); 45 | }); 46 | 47 | module.exports.searchById = (args, context, logger) => new Promise((resolve, reject) => { 48 | logger.info('CareTeam >>> searchById'); 49 | 50 | let { base_version, id } = args; 51 | 52 | let CareTeam = getCareTeam(base_version); 53 | 54 | // TODO: Build query from Parameters 55 | 56 | // TODO: Query database 57 | 58 | // Cast result to CareTeam Class 59 | let careteam_resource = new CareTeam(); 60 | // TODO: Set data with constructor or setter methods 61 | careteam_resource.id = 'test id'; 62 | 63 | // Return resource class 64 | // resolve(careteam_resource); 65 | resolve(); 66 | }); 67 | 68 | module.exports.create = (args, context, logger) => new Promise((resolve, reject) => { 69 | logger.info('CareTeam >>> create'); 70 | 71 | let { base_version, id, resource } = args; 72 | 73 | let CareTeam = getCareTeam(base_version); 74 | let Meta = getMeta(base_version); 75 | 76 | // TODO: determine if client/server sets ID 77 | 78 | // Cast resource to CareTeam Class 79 | let careteam_resource = new CareTeam(resource); 80 | careteam_resource.meta = new Meta(); 81 | // TODO: set meta info 82 | 83 | // TODO: save record to database 84 | 85 | // Return Id 86 | resolve({ id: careteam_resource.id }); 87 | }); 88 | 89 | module.exports.update = (args, context, logger) => new Promise((resolve, reject) => { 90 | logger.info('CareTeam >>> update'); 91 | 92 | let { base_version, id, resource } = args; 93 | 94 | let CareTeam = getCareTeam(base_version); 95 | let Meta = getMeta(base_version); 96 | 97 | // Cast resource to CareTeam Class 98 | let careteam_resource = new CareTeam(resource); 99 | careteam_resource.meta = new Meta(); 100 | // TODO: set meta info, increment meta ID 101 | 102 | // TODO: save record to database 103 | 104 | // Return id, if recorded was created or updated, new meta version id 105 | resolve({ id: careteam_resource.id, created: false, resource_version: careteam_resource.meta.versionId }); 106 | }); 107 | 108 | module.exports.remove = (args, context, logger) => new Promise((resolve, reject) => { 109 | logger.info('CareTeam >>> remove'); 110 | 111 | let { id } = args; 112 | 113 | // TODO: delete record in database (soft/hard) 114 | 115 | // Return number of records deleted 116 | resolve({ deleted: 0 }); 117 | }); 118 | 119 | module.exports.searchByVersionId = (args, context, logger) => new Promise((resolve, reject) => { 120 | logger.info('CareTeam >>> searchByVersionId'); 121 | 122 | let { base_version, id, version_id } = args; 123 | 124 | let CareTeam = getCareTeam(base_version); 125 | 126 | // TODO: Build query from Parameters 127 | 128 | // TODO: Query database 129 | 130 | // Cast result to CareTeam Class 131 | let careteam_resource = new CareTeam(); 132 | 133 | // Return resource class 134 | resolve(careteam_resource); 135 | }); 136 | 137 | module.exports.history = (args, context, logger) => new Promise((resolve, reject) => { 138 | logger.info('CareTeam >>> history'); 139 | 140 | // Common search params 141 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 142 | 143 | // Search Result params 144 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 145 | 146 | // Resource Specific params 147 | let category = args['category']; 148 | let _context = args['_context']; 149 | let date = args['date']; 150 | let encounter = args['encounter']; 151 | let identifier = args['identifier']; 152 | let participant = args['participant']; 153 | let patient = args['patient']; 154 | let status = args['status']; 155 | let subject = args['subject']; 156 | 157 | // TODO: Build query from Parameters 158 | 159 | // TODO: Query database 160 | 161 | let CareTeam = getCareTeam(base_version); 162 | 163 | // Cast all results to CareTeam Class 164 | let careteam_resource = new CareTeam(); 165 | 166 | // Return Array 167 | resolve([careteam_resource]); 168 | }); 169 | 170 | module.exports.historyById = (args, context, logger) => new Promise((resolve, reject) => { 171 | logger.info('CareTeam >>> historyById'); 172 | 173 | // Common search params 174 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 175 | 176 | // Search Result params 177 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 178 | 179 | // Resource Specific params 180 | let category = args['category']; 181 | let _context = args['_context']; 182 | let date = args['date']; 183 | let encounter = args['encounter']; 184 | let identifier = args['identifier']; 185 | let participant = args['participant']; 186 | let patient = args['patient']; 187 | let status = args['status']; 188 | let subject = args['subject']; 189 | 190 | // TODO: Build query from Parameters 191 | 192 | // TODO: Query database 193 | 194 | let CareTeam = getCareTeam(base_version); 195 | 196 | // Cast all results to CareTeam Class 197 | let careteam_resource = new CareTeam(); 198 | 199 | // Return Array 200 | resolve([careteam_resource]); 201 | }); 202 | 203 | -------------------------------------------------------------------------------- /src/services/list/list.service.js: -------------------------------------------------------------------------------- 1 | /*eslint no-unused-vars: "warn"*/ 2 | 3 | const { RESOURCES } = require('@asymmetrik/node-fhir-server-core').constants; 4 | const FHIRServer = require('@asymmetrik/node-fhir-server-core'); 5 | 6 | let getList = (base_version) => { 7 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.LIST));}; 8 | 9 | let getMeta = (base_version) => { 10 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.META));}; 11 | 12 | module.exports.search = (args, context, logger) => new Promise((resolve, reject) => { 13 | logger.info('List >>> search'); 14 | 15 | // Common search params 16 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 17 | 18 | // Search Result params 19 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 20 | 21 | // Resource Specific params 22 | let code = args['code']; 23 | let date = args['date']; 24 | let empty_reason = args['empty-reason']; 25 | let encounter = args['encounter']; 26 | let identifier = args['identifier']; 27 | let item = args['item']; 28 | let notes = args['notes']; 29 | let patient = args['patient']; 30 | let source = args['source']; 31 | let status = args['status']; 32 | let subject = args['subject']; 33 | let title = args['title']; 34 | 35 | // TODO: Build query from Parameters 36 | 37 | // TODO: Query database 38 | 39 | let List = getList(base_version); 40 | 41 | // Cast all results to List Class 42 | let list_resource = new List(); 43 | // TODO: Set data with constructor or setter methods 44 | list_resource.id = 'test id'; 45 | 46 | // Return Array 47 | resolve([list_resource]); 48 | }); 49 | 50 | module.exports.searchById = (args, context, logger) => new Promise((resolve, reject) => { 51 | logger.info('List >>> searchById'); 52 | 53 | let { base_version, id } = args; 54 | 55 | let List = getList(base_version); 56 | 57 | // TODO: Build query from Parameters 58 | 59 | // TODO: Query database 60 | 61 | // Cast result to List Class 62 | let list_resource = new List(); 63 | // TODO: Set data with constructor or setter methods 64 | list_resource.id = 'test id'; 65 | 66 | // Return resource class 67 | // resolve(list_resource); 68 | resolve(); 69 | }); 70 | 71 | module.exports.create = (args, context, logger) => new Promise((resolve, reject) => { 72 | logger.info('List >>> create'); 73 | 74 | let { base_version, id, resource } = args; 75 | 76 | let List = getList(base_version); 77 | let Meta = getMeta(base_version); 78 | 79 | // TODO: determine if client/server sets ID 80 | 81 | // Cast resource to List Class 82 | let list_resource = new List(resource); 83 | list_resource.meta = new Meta(); 84 | // TODO: set meta info 85 | 86 | // TODO: save record to database 87 | 88 | // Return Id 89 | resolve({ id: list_resource.id }); 90 | }); 91 | 92 | module.exports.update = (args, context, logger) => new Promise((resolve, reject) => { 93 | logger.info('List >>> update'); 94 | 95 | let { base_version, id, resource } = args; 96 | 97 | let List = getList(base_version); 98 | let Meta = getMeta(base_version); 99 | 100 | // Cast resource to List Class 101 | let list_resource = new List(resource); 102 | list_resource.meta = new Meta(); 103 | // TODO: set meta info, increment meta ID 104 | 105 | // TODO: save record to database 106 | 107 | // Return id, if recorded was created or updated, new meta version id 108 | resolve({ id: list_resource.id, created: false, resource_version: list_resource.meta.versionId }); 109 | }); 110 | 111 | module.exports.remove = (args, context, logger) => new Promise((resolve, reject) => { 112 | logger.info('List >>> remove'); 113 | 114 | let { id } = args; 115 | 116 | // TODO: delete record in database (soft/hard) 117 | 118 | // Return number of records deleted 119 | resolve({ deleted: 0 }); 120 | }); 121 | 122 | module.exports.searchByVersionId = (args, context, logger) => new Promise((resolve, reject) => { 123 | logger.info('List >>> searchByVersionId'); 124 | 125 | let { base_version, id, version_id } = args; 126 | 127 | let List = getList(base_version); 128 | 129 | // TODO: Build query from Parameters 130 | 131 | // TODO: Query database 132 | 133 | // Cast result to List Class 134 | let list_resource = new List(); 135 | 136 | // Return resource class 137 | resolve(list_resource); 138 | }); 139 | 140 | module.exports.history = (args, context, logger) => new Promise((resolve, reject) => { 141 | logger.info('List >>> history'); 142 | 143 | // Common search params 144 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 145 | 146 | // Search Result params 147 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 148 | 149 | // Resource Specific params 150 | let code = args['code']; 151 | let date = args['date']; 152 | let empty_reason = args['empty-reason']; 153 | let encounter = args['encounter']; 154 | let identifier = args['identifier']; 155 | let item = args['item']; 156 | let notes = args['notes']; 157 | let patient = args['patient']; 158 | let source = args['source']; 159 | let status = args['status']; 160 | let subject = args['subject']; 161 | let title = args['title']; 162 | 163 | // TODO: Build query from Parameters 164 | 165 | // TODO: Query database 166 | 167 | let List = getList(base_version); 168 | 169 | // Cast all results to List Class 170 | let list_resource = new List(); 171 | 172 | // Return Array 173 | resolve([list_resource]); 174 | }); 175 | 176 | module.exports.historyById = (args, context, logger) => new Promise((resolve, reject) => { 177 | logger.info('List >>> historyById'); 178 | 179 | // Common search params 180 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 181 | 182 | // Search Result params 183 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 184 | 185 | // Resource Specific params 186 | let code = args['code']; 187 | let date = args['date']; 188 | let empty_reason = args['empty-reason']; 189 | let encounter = args['encounter']; 190 | let identifier = args['identifier']; 191 | let item = args['item']; 192 | let notes = args['notes']; 193 | let patient = args['patient']; 194 | let source = args['source']; 195 | let status = args['status']; 196 | let subject = args['subject']; 197 | let title = args['title']; 198 | 199 | // TODO: Build query from Parameters 200 | 201 | // TODO: Query database 202 | 203 | let List = getList(base_version); 204 | 205 | // Cast all results to List Class 206 | let list_resource = new List(); 207 | 208 | // Return Array 209 | resolve([list_resource]); 210 | }); 211 | 212 | -------------------------------------------------------------------------------- /src/services/substance/substance.service.js: -------------------------------------------------------------------------------- 1 | /*eslint no-unused-vars: "warn"*/ 2 | 3 | const { RESOURCES } = require('@asymmetrik/node-fhir-server-core').constants; 4 | const FHIRServer = require('@asymmetrik/node-fhir-server-core'); 5 | 6 | let getSubstance = (base_version) => { 7 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.SUBSTANCE));}; 8 | 9 | let getMeta = (base_version) => { 10 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.META));}; 11 | 12 | module.exports.search = (args, context, logger) => new Promise((resolve, reject) => { 13 | logger.info('Substance >>> search'); 14 | 15 | // Common search params 16 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 17 | 18 | // Search Result params 19 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 20 | 21 | // Resource Specific params 22 | let category = args['category']; 23 | let code = args['code']; 24 | let container_identifier = args['container-identifier']; 25 | let expiry = args['expiry']; 26 | let identifier = args['identifier']; 27 | let quantity = args['quantity']; 28 | let status = args['status']; 29 | let substance_reference = args['substance-reference']; 30 | 31 | // TODO: Build query from Parameters 32 | 33 | // TODO: Query database 34 | 35 | let Substance = getSubstance(base_version); 36 | 37 | // Cast all results to Substance Class 38 | let substance_resource = new Substance(); 39 | // TODO: Set data with constructor or setter methods 40 | substance_resource.id = 'test id'; 41 | 42 | // Return Array 43 | resolve([substance_resource]); 44 | }); 45 | 46 | module.exports.searchById = (args, context, logger) => new Promise((resolve, reject) => { 47 | logger.info('Substance >>> searchById'); 48 | 49 | let { base_version, id } = args; 50 | 51 | let Substance = getSubstance(base_version); 52 | 53 | // TODO: Build query from Parameters 54 | 55 | // TODO: Query database 56 | 57 | // Cast result to Substance Class 58 | let substance_resource = new Substance(); 59 | // TODO: Set data with constructor or setter methods 60 | substance_resource.id = 'test id'; 61 | 62 | // Return resource class 63 | // resolve(substance_resource); 64 | resolve(); 65 | }); 66 | 67 | module.exports.create = (args, context, logger) => new Promise((resolve, reject) => { 68 | logger.info('Substance >>> create'); 69 | 70 | let { base_version, id, resource } = args; 71 | 72 | let Substance = getSubstance(base_version); 73 | let Meta = getMeta(base_version); 74 | 75 | // TODO: determine if client/server sets ID 76 | 77 | // Cast resource to Substance Class 78 | let substance_resource = new Substance(resource); 79 | substance_resource.meta = new Meta(); 80 | // TODO: set meta info 81 | 82 | // TODO: save record to database 83 | 84 | // Return Id 85 | resolve({ id: substance_resource.id }); 86 | }); 87 | 88 | module.exports.update = (args, context, logger) => new Promise((resolve, reject) => { 89 | logger.info('Substance >>> update'); 90 | 91 | let { base_version, id, resource } = args; 92 | 93 | let Substance = getSubstance(base_version); 94 | let Meta = getMeta(base_version); 95 | 96 | // Cast resource to Substance Class 97 | let substance_resource = new Substance(resource); 98 | substance_resource.meta = new Meta(); 99 | // TODO: set meta info, increment meta ID 100 | 101 | // TODO: save record to database 102 | 103 | // Return id, if recorded was created or updated, new meta version id 104 | resolve({ id: substance_resource.id, created: false, resource_version: substance_resource.meta.versionId }); 105 | }); 106 | 107 | module.exports.remove = (args, context, logger) => new Promise((resolve, reject) => { 108 | logger.info('Substance >>> remove'); 109 | 110 | let { id } = args; 111 | 112 | // TODO: delete record in database (soft/hard) 113 | 114 | // Return number of records deleted 115 | resolve({ deleted: 0 }); 116 | }); 117 | 118 | module.exports.searchByVersionId = (args, context, logger) => new Promise((resolve, reject) => { 119 | logger.info('Substance >>> searchByVersionId'); 120 | 121 | let { base_version, id, version_id } = args; 122 | 123 | let Substance = getSubstance(base_version); 124 | 125 | // TODO: Build query from Parameters 126 | 127 | // TODO: Query database 128 | 129 | // Cast result to Substance Class 130 | let substance_resource = new Substance(); 131 | 132 | // Return resource class 133 | resolve(substance_resource); 134 | }); 135 | 136 | module.exports.history = (args, context, logger) => new Promise((resolve, reject) => { 137 | logger.info('Substance >>> history'); 138 | 139 | // Common search params 140 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 141 | 142 | // Search Result params 143 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 144 | 145 | // Resource Specific params 146 | let category = args['category']; 147 | let code = args['code']; 148 | let container_identifier = args['container-identifier']; 149 | let expiry = args['expiry']; 150 | let identifier = args['identifier']; 151 | let quantity = args['quantity']; 152 | let status = args['status']; 153 | let substance_reference = args['substance-reference']; 154 | 155 | // TODO: Build query from Parameters 156 | 157 | // TODO: Query database 158 | 159 | let Substance = getSubstance(base_version); 160 | 161 | // Cast all results to Substance Class 162 | let substance_resource = new Substance(); 163 | 164 | // Return Array 165 | resolve([substance_resource]); 166 | }); 167 | 168 | module.exports.historyById = (args, context, logger) => new Promise((resolve, reject) => { 169 | logger.info('Substance >>> historyById'); 170 | 171 | // Common search params 172 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 173 | 174 | // Search Result params 175 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 176 | 177 | // Resource Specific params 178 | let category = args['category']; 179 | let code = args['code']; 180 | let container_identifier = args['container-identifier']; 181 | let expiry = args['expiry']; 182 | let identifier = args['identifier']; 183 | let quantity = args['quantity']; 184 | let status = args['status']; 185 | let substance_reference = args['substance-reference']; 186 | 187 | // TODO: Build query from Parameters 188 | 189 | // TODO: Query database 190 | 191 | let Substance = getSubstance(base_version); 192 | 193 | // Cast all results to Substance Class 194 | let substance_resource = new Substance(); 195 | 196 | // Return Array 197 | resolve([substance_resource]); 198 | }); 199 | 200 | -------------------------------------------------------------------------------- /src/services/processresponse/processresponse.service.js: -------------------------------------------------------------------------------- 1 | /*eslint no-unused-vars: "warn"*/ 2 | 3 | const { RESOURCES } = require('@asymmetrik/node-fhir-server-core').constants; 4 | const FHIRServer = require('@asymmetrik/node-fhir-server-core'); 5 | 6 | let getProcessResponse = (base_version) => { 7 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.PROCESSRESPONSE));}; 8 | 9 | let getMeta = (base_version) => { 10 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.META));}; 11 | 12 | module.exports.search = (args, context, logger) => new Promise((resolve, reject) => { 13 | logger.info('ProcessResponse >>> search'); 14 | 15 | // Common search params 16 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 17 | 18 | // Search Result params 19 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 20 | 21 | // Resource Specific params 22 | let identifier = args['identifier']; 23 | let organization = args['organization']; 24 | let request = args['request']; 25 | let request_organization = args['request-organization']; 26 | let request_provider = args['request-provider']; 27 | 28 | // TODO: Build query from Parameters 29 | 30 | // TODO: Query database 31 | 32 | let ProcessResponse = getProcessResponse(base_version); 33 | 34 | // Cast all results to ProcessResponse Class 35 | let processresponse_resource = new ProcessResponse(); 36 | // TODO: Set data with constructor or setter methods 37 | processresponse_resource.id = 'test id'; 38 | 39 | // Return Array 40 | resolve([processresponse_resource]); 41 | }); 42 | 43 | module.exports.searchById = (args, context, logger) => new Promise((resolve, reject) => { 44 | logger.info('ProcessResponse >>> searchById'); 45 | 46 | let { base_version, id } = args; 47 | 48 | let ProcessResponse = getProcessResponse(base_version); 49 | 50 | // TODO: Build query from Parameters 51 | 52 | // TODO: Query database 53 | 54 | // Cast result to ProcessResponse Class 55 | let processresponse_resource = new ProcessResponse(); 56 | // TODO: Set data with constructor or setter methods 57 | processresponse_resource.id = 'test id'; 58 | 59 | // Return resource class 60 | // resolve(processresponse_resource); 61 | resolve(); 62 | }); 63 | 64 | module.exports.create = (args, context, logger) => new Promise((resolve, reject) => { 65 | logger.info('ProcessResponse >>> create'); 66 | 67 | let { base_version, id, resource } = args; 68 | 69 | let ProcessResponse = getProcessResponse(base_version); 70 | let Meta = getMeta(base_version); 71 | 72 | // TODO: determine if client/server sets ID 73 | 74 | // Cast resource to ProcessResponse Class 75 | let processresponse_resource = new ProcessResponse(resource); 76 | processresponse_resource.meta = new Meta(); 77 | // TODO: set meta info 78 | 79 | // TODO: save record to database 80 | 81 | // Return Id 82 | resolve({ id: processresponse_resource.id }); 83 | }); 84 | 85 | module.exports.update = (args, context, logger) => new Promise((resolve, reject) => { 86 | logger.info('ProcessResponse >>> update'); 87 | 88 | let { base_version, id, resource } = args; 89 | 90 | let ProcessResponse = getProcessResponse(base_version); 91 | let Meta = getMeta(base_version); 92 | 93 | // Cast resource to ProcessResponse Class 94 | let processresponse_resource = new ProcessResponse(resource); 95 | processresponse_resource.meta = new Meta(); 96 | // TODO: set meta info, increment meta ID 97 | 98 | // TODO: save record to database 99 | 100 | // Return id, if recorded was created or updated, new meta version id 101 | resolve({ id: processresponse_resource.id, created: false, resource_version: processresponse_resource.meta.versionId }); 102 | }); 103 | 104 | module.exports.remove = (args, context, logger) => new Promise((resolve, reject) => { 105 | logger.info('ProcessResponse >>> remove'); 106 | 107 | let { id } = args; 108 | 109 | // TODO: delete record in database (soft/hard) 110 | 111 | // Return number of records deleted 112 | resolve({ deleted: 0 }); 113 | }); 114 | 115 | module.exports.searchByVersionId = (args, context, logger) => new Promise((resolve, reject) => { 116 | logger.info('ProcessResponse >>> searchByVersionId'); 117 | 118 | let { base_version, id, version_id } = args; 119 | 120 | let ProcessResponse = getProcessResponse(base_version); 121 | 122 | // TODO: Build query from Parameters 123 | 124 | // TODO: Query database 125 | 126 | // Cast result to ProcessResponse Class 127 | let processresponse_resource = new ProcessResponse(); 128 | 129 | // Return resource class 130 | resolve(processresponse_resource); 131 | }); 132 | 133 | module.exports.history = (args, context, logger) => new Promise((resolve, reject) => { 134 | logger.info('ProcessResponse >>> history'); 135 | 136 | // Common search params 137 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 138 | 139 | // Search Result params 140 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 141 | 142 | // Resource Specific params 143 | let identifier = args['identifier']; 144 | let organization = args['organization']; 145 | let request = args['request']; 146 | let request_organization = args['request-organization']; 147 | let request_provider = args['request-provider']; 148 | 149 | // TODO: Build query from Parameters 150 | 151 | // TODO: Query database 152 | 153 | let ProcessResponse = getProcessResponse(base_version); 154 | 155 | // Cast all results to ProcessResponse Class 156 | let processresponse_resource = new ProcessResponse(); 157 | 158 | // Return Array 159 | resolve([processresponse_resource]); 160 | }); 161 | 162 | module.exports.historyById = (args, context, logger) => new Promise((resolve, reject) => { 163 | logger.info('ProcessResponse >>> historyById'); 164 | 165 | // Common search params 166 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 167 | 168 | // Search Result params 169 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 170 | 171 | // Resource Specific params 172 | let identifier = args['identifier']; 173 | let organization = args['organization']; 174 | let request = args['request']; 175 | let request_organization = args['request-organization']; 176 | let request_provider = args['request-provider']; 177 | 178 | // TODO: Build query from Parameters 179 | 180 | // TODO: Query database 181 | 182 | let ProcessResponse = getProcessResponse(base_version); 183 | 184 | // Cast all results to ProcessResponse Class 185 | let processresponse_resource = new ProcessResponse(); 186 | 187 | // Return Array 188 | resolve([processresponse_resource]); 189 | }); 190 | 191 | -------------------------------------------------------------------------------- /src/services/visionprescription/visionprescription.service.js: -------------------------------------------------------------------------------- 1 | /*eslint no-unused-vars: "warn"*/ 2 | 3 | const { RESOURCES } = require('@asymmetrik/node-fhir-server-core').constants; 4 | const FHIRServer = require('@asymmetrik/node-fhir-server-core'); 5 | 6 | let getVisionPrescription = (base_version) => { 7 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.VISIONPRESCRIPTION));}; 8 | 9 | let getMeta = (base_version) => { 10 | return require(FHIRServer.resolveFromVersion(base_version, RESOURCES.META));}; 11 | 12 | module.exports.search = (args, context, logger) => new Promise((resolve, reject) => { 13 | logger.info('VisionPrescription >>> search'); 14 | 15 | // Common search params 16 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 17 | 18 | // Search Result params 19 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 20 | 21 | // Resource Specific params 22 | let datewritten = args['datewritten']; 23 | let encounter = args['encounter']; 24 | let identifier = args['identifier']; 25 | let patient = args['patient']; 26 | let prescriber = args['prescriber']; 27 | 28 | // TODO: Build query from Parameters 29 | 30 | // TODO: Query database 31 | 32 | let VisionPrescription = getVisionPrescription(base_version); 33 | 34 | // Cast all results to VisionPrescription Class 35 | let visionprescription_resource = new VisionPrescription(); 36 | // TODO: Set data with constructor or setter methods 37 | visionprescription_resource.id = 'test id'; 38 | 39 | // Return Array 40 | resolve([visionprescription_resource]); 41 | }); 42 | 43 | module.exports.searchById = (args, context, logger) => new Promise((resolve, reject) => { 44 | logger.info('VisionPrescription >>> searchById'); 45 | 46 | let { base_version, id } = args; 47 | 48 | let VisionPrescription = getVisionPrescription(base_version); 49 | 50 | // TODO: Build query from Parameters 51 | 52 | // TODO: Query database 53 | 54 | // Cast result to VisionPrescription Class 55 | let visionprescription_resource = new VisionPrescription(); 56 | // TODO: Set data with constructor or setter methods 57 | visionprescription_resource.id = 'test id'; 58 | 59 | // Return resource class 60 | // resolve(visionprescription_resource); 61 | resolve(); 62 | }); 63 | 64 | module.exports.create = (args, context, logger) => new Promise((resolve, reject) => { 65 | logger.info('VisionPrescription >>> create'); 66 | 67 | let { base_version, id, resource } = args; 68 | 69 | let VisionPrescription = getVisionPrescription(base_version); 70 | let Meta = getMeta(base_version); 71 | 72 | // TODO: determine if client/server sets ID 73 | 74 | // Cast resource to VisionPrescription Class 75 | let visionprescription_resource = new VisionPrescription(resource); 76 | visionprescription_resource.meta = new Meta(); 77 | // TODO: set meta info 78 | 79 | // TODO: save record to database 80 | 81 | // Return Id 82 | resolve({ id: visionprescription_resource.id }); 83 | }); 84 | 85 | module.exports.update = (args, context, logger) => new Promise((resolve, reject) => { 86 | logger.info('VisionPrescription >>> update'); 87 | 88 | let { base_version, id, resource } = args; 89 | 90 | let VisionPrescription = getVisionPrescription(base_version); 91 | let Meta = getMeta(base_version); 92 | 93 | // Cast resource to VisionPrescription Class 94 | let visionprescription_resource = new VisionPrescription(resource); 95 | visionprescription_resource.meta = new Meta(); 96 | // TODO: set meta info, increment meta ID 97 | 98 | // TODO: save record to database 99 | 100 | // Return id, if recorded was created or updated, new meta version id 101 | resolve({ id: visionprescription_resource.id, created: false, resource_version: visionprescription_resource.meta.versionId }); 102 | }); 103 | 104 | module.exports.remove = (args, context, logger) => new Promise((resolve, reject) => { 105 | logger.info('VisionPrescription >>> remove'); 106 | 107 | let { id } = args; 108 | 109 | // TODO: delete record in database (soft/hard) 110 | 111 | // Return number of records deleted 112 | resolve({ deleted: 0 }); 113 | }); 114 | 115 | module.exports.searchByVersionId = (args, context, logger) => new Promise((resolve, reject) => { 116 | logger.info('VisionPrescription >>> searchByVersionId'); 117 | 118 | let { base_version, id, version_id } = args; 119 | 120 | let VisionPrescription = getVisionPrescription(base_version); 121 | 122 | // TODO: Build query from Parameters 123 | 124 | // TODO: Query database 125 | 126 | // Cast result to VisionPrescription Class 127 | let visionprescription_resource = new VisionPrescription(); 128 | 129 | // Return resource class 130 | resolve(visionprescription_resource); 131 | }); 132 | 133 | module.exports.history = (args, context, logger) => new Promise((resolve, reject) => { 134 | logger.info('VisionPrescription >>> history'); 135 | 136 | // Common search params 137 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 138 | 139 | // Search Result params 140 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 141 | 142 | // Resource Specific params 143 | let datewritten = args['datewritten']; 144 | let encounter = args['encounter']; 145 | let identifier = args['identifier']; 146 | let patient = args['patient']; 147 | let prescriber = args['prescriber']; 148 | 149 | // TODO: Build query from Parameters 150 | 151 | // TODO: Query database 152 | 153 | let VisionPrescription = getVisionPrescription(base_version); 154 | 155 | // Cast all results to VisionPrescription Class 156 | let visionprescription_resource = new VisionPrescription(); 157 | 158 | // Return Array 159 | resolve([visionprescription_resource]); 160 | }); 161 | 162 | module.exports.historyById = (args, context, logger) => new Promise((resolve, reject) => { 163 | logger.info('VisionPrescription >>> historyById'); 164 | 165 | // Common search params 166 | let { base_version, _content, _format, _id, _lastUpdated, _profile, _query, _security, _tag } = args; 167 | 168 | // Search Result params 169 | let { _INCLUDE, _REVINCLUDE, _SORT, _COUNT, _SUMMARY, _ELEMENTS, _CONTAINED, _CONTAINEDTYPED } = args; 170 | 171 | // Resource Specific params 172 | let datewritten = args['datewritten']; 173 | let encounter = args['encounter']; 174 | let identifier = args['identifier']; 175 | let patient = args['patient']; 176 | let prescriber = args['prescriber']; 177 | 178 | // TODO: Build query from Parameters 179 | 180 | // TODO: Query database 181 | 182 | let VisionPrescription = getVisionPrescription(base_version); 183 | 184 | // Cast all results to VisionPrescription Class 185 | let visionprescription_resource = new VisionPrescription(); 186 | 187 | // Return Array 188 | resolve([visionprescription_resource]); 189 | }); 190 | 191 | --------------------------------------------------------------------------------