Skip to content

Commit

Permalink
Merge pull request #124 from jembi/hearth-162-story-fix-mhd-support
Browse files Browse the repository at this point in the history
Hearth 162 story fix mhd support
  • Loading branch information
rcrichton authored Feb 8, 2018
2 parents b5fd90b + edac3e3 commit 15fe33c
Show file tree
Hide file tree
Showing 39 changed files with 15,050 additions and 7,308 deletions.
9 changes: 8 additions & 1 deletion config/default.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@
"server": {
"hostname": "0.0.0.0",
"publicFhirBase": "http://localhost:3447/fhir",
"port": 3447
"port": 3447,
"fhirVersion": "dstu2"
},
"mongodb": {
"url": "mongodb://localhost/hearth"
Expand Down Expand Up @@ -31,5 +32,11 @@
"matchingQueue": {
"numberOfWorkers": 2,
"pollingInterval": 1000
},
"validation": {
"enabled": false,
"additionProfilePaths": [
"lib/fhir/profiles/mhd"
]
}
}
34 changes: 34 additions & 0 deletions lib/fhir/profile-loader.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
/**
* Copyright (c) 2017-present, Jembi Health Systems NPC.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree.
*/

'use strict'

const fs = require('fs')
const path = require('path')

const profiles = {}

module.exports = () => {
return {
loadProfiles: (paths) => {
paths.forEach((profilePath) => {
if (!profilePath.startsWith('/')) {
profilePath = `${global.appRoot}/${profilePath}`
}
fs.readdirSync(path.resolve(profilePath)).filter((file) => file.endsWith('.json')).forEach((file) => {
const profile = require(`${profilePath}/${file}`)
profiles[profile.type] = profile
})
})
},

getProfiles: () => {
return profiles
}
}
}
138 changes: 138 additions & 0 deletions lib/fhir/profiles/mhd/IHEMHDDocumentManifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
{
"resourceType": "StructureDefinition",
"id": "IHE.MHD.DocumentManifest",
"text": {
"status": "additional",
"div": "<div xmlns=\"http://www.w3.org/1999/xhtml\">\r\n\tStructureDefinition for DocumentManifest as represented in the Provide and Query interactions in the \r\n IHE IT Infrastructure Technical Framework Supplement <a href=\"http://wiki.ihe.net/index.php/Mobile_access_to_Health_Documents_(MHD)\">Mobile access to Health Documents (MHD) Rev. 2.3</a></div>"
},
"url": "http://ihe.net/fhir/StructureDefinition/IHE.MHD.DocumentManifest",
"name": "IHE.MHD.DocumentManifest",
"title": "IHE MHD Profile on DocumentManifest (SubmissionSet)",
"status": "draft",
"experimental": false,
"date": "2017-12-21",
"publisher": "Integrating the Healthcare Enterprise (IHE)",
"contact": [
{
"name": "IHE",
"telecom": [
{
"system": "url",
"value": "http://ihe.net"
}
]
},
{
"name": "John Moehrke",
"telecom": [
{
"system": "email",
"value": "[email protected]"
}
]
}
],
"description": "Profile on DocumentManifest based on IHE IT Infrastructure Technical Framework Supplement - Mobile access to Health Documents (MHD) Rev. 2.3. See http://wiki.ihe.net/index.php/Mobile_access_to_Health_Documents_(MHD)",
"copyright": "IHE http://www.ihe.net/Governance/#Intellectual_Property",
"fhirVersion": "3.0.1",
"kind": "resource",
"abstract": false,
"type": "DocumentManifest",
"baseDefinition": "http://hl7.org/fhir/StructureDefinition/DocumentManifest",
"derivation": "constraint",
"differential": {
"element": [
{
"id": "DocumentManifest.masterIdentifier",
"path": "DocumentManifest.masterIdentifier",
"min": 1
},
{
"id": "DocumentManifest.identifier",
"path": "DocumentManifest.identifier",
"min": 1
},
{
"id": "DocumentManifest.status",
"path": "DocumentManifest.status",
"comment": "approved -> status=current\r\ndeprecated -> status=superseded"
},
{
"id": "DocumentManifest.type",
"path": "DocumentManifest.type",
"min": 1
},
{
"id": "DocumentManifest.subject",
"path": "DocumentManifest.subject",
"comment": "Not a contained resource. URL Points to an existing Patient resource representing Affinity Domain Patient",
"min": 1,
"type": [
{
"code": "Reference",
"targetProfile": "http://hl7.org/fhir/StructureDefinition/Patient"
}
]
},
{
"id": "DocumentManifest.created",
"path": "DocumentManifest.created",
"min": 1
},
{
"id": "DocumentManifest.author",
"path": "DocumentManifest.author",
"comment": "Contained author resource of type Practitioner with:\r\n* authorInstitution: Organization\r\n* authorPerson: Practitioner.identifier and Practitioner.name\r\n* authorRole:—Not supported in STU3\r\n* authorSpecialty: Practitioner.qualification\r\n* authorTelecommunication: Practitioner.telecom",
"type": [
{
"code": "Reference",
"targetProfile": "http://hl7.org/fhir/StructureDefinition/Practitioner"
},
{
"code": "Reference",
"targetProfile": "http://hl7.org/fhir/StructureDefinition/Organization"
}
],
"mustSupport": true
},
{
"id": "DocumentManifest.source",
"path": "DocumentManifest.source",
"min": 1
},
{
"id": "DocumentManifest.content.p[x]:pReference",
"path": "DocumentManifest.content.pReference",
"sliceName": "pReference",
"type": [
{
"code": "Reference",
"targetProfile": "http://ihe.net/fhir/StructureDefinition/IHE.MHD.ProvideDocumentBundle.Minimal"
},
{
"code": "Reference",
"targetProfile": "http://ihe.net/fhir/StructureDefinition/IHE.MHD.ProvideDocumentBundle.Comprehensive"
},
{
"code": "Reference",
"targetProfile": "http://ihe.net/fhir/StructureDefinition/IHE.MHD.Query.Minimal.DocumentReference"
},
{
"code": "Reference",
"targetProfile": "http://ihe.net/fhir/StructureDefinition/IHE.MHD.Query.Comprehensive.DocumentReference"
},
{
"code": "Reference",
"targetProfile": "http://hl7.org/fhir/StructureDefinition/DocumentReference"
}
]
},
{
"id": "DocumentManifest.related",
"path": "DocumentManifest.related",
"comment": "These HL7 FHIR STU3 elements are not used in XDS, therefore would not be present. Document Consumers should be robust to these elements holding values.",
"max": "0"
}
]
}
}
124 changes: 124 additions & 0 deletions lib/fhir/profiles/mhd/IHEMHDList.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
{
"resourceType": "StructureDefinition",
"id": "IHE.MHD.List",
"text": {
"status": "additional",
"div": "<div xmlns=\"http://www.w3.org/1999/xhtml\">\r\n\tStructureDefinition for List Resource supporting XDS Folders in the \r\n IHE IT Infrastructure Technical Framework Supplement <a href=\"http://wiki.ihe.net/index.php/Mobile_access_to_Health_Documents_(MHD)\">Mobile access to Health Documents (MHD) Rev. 2.3</a></div>"
},
"url": "http://ihe.net/fhir/StructureDefinition/IHE.MHD.List",
"name": "IHE.MHD.List",
"title": "IHE MHD Profile on List (Folder)",
"status": "draft",
"experimental": false,
"date": "2017-12-18",
"publisher": "Integrating the Healthcare Enterprise (IHE)",
"contact": [
{
"name": "IHE",
"telecom": [
{
"system": "url",
"value": "http://ihe.net"
}
]
},
{
"name": "John Moehrke",
"telecom": [
{
"system": "email",
"value": "[email protected]"
}
]
}
],
"description": "Profile on List for use as a Document Folder based on IHE IT Infrastructure Technical Framework Supplement - Mobile access to Health Documents (MHD) Rev. 2.3. See http://wiki.ihe.net/index.php/Mobile_access_to_Health_Documents_(MHD)",
"copyright": "IHE http://www.ihe.net/Governance/#Intellectual_Property",
"fhirVersion": "3.0.1",
"kind": "resource",
"abstract": false,
"type": "List",
"baseDefinition": "http://hl7.org/fhir/StructureDefinition/List",
"derivation": "constraint",
"differential": {
"element": [
{
"id": "List.identifier",
"path": "List.identifier",
"comment": "When the List.identifier carries the entryUUID then the List.identifier.use shall be ‘official’; and the uniqueId then the List.identifier.use shall be\r\n‘usual’.",
"min": 1
},
{
"id": "List.mode",
"path": "List.mode",
"comment": "shall be ‘working’",
"fixedCode": "working"
},
{
"id": "List.title",
"path": "List.title",
"min": 1
},
{
"id": "List.code",
"path": "List.code",
"comment": "code.coding is [0..*] so may contain many.",
"min": 1
},
{
"id": "List.subject",
"path": "List.subject",
"comment": "URL Points to an existing Patient resource representing Affinity Domain Patient.",
"min": 1,
"type": [
{
"code": "Reference",
"targetProfile": "http://hl7.org/fhir/StructureDefinition/Patient"
}
]
},
{
"id": "List.encounter",
"path": "List.encounter",
"comment": "These HL7 FHIR STU3 elements are not used in XDS, therefore would not be present. Document Consumers should be robust to these elements holding values.",
"max": "0"
},
{
"id": "List.source",
"path": "List.source",
"comment": "These HL7 FHIR STU3 elements are not used in XDS, therefore would not be present. Document Consumers should be robust to these elements holding values.",
"max": "0"
},
{
"id": "List.orderedBy",
"path": "List.orderedBy",
"comment": "These HL7 FHIR STU3 elements are not used in XDS, therefore would not be present. Document Consumers should be robust to these elements holding values.",
"max": "0"
},
{
"id": "List.entry.flag",
"path": "List.entry.flag",
"comment": "These HL7 FHIR STU3 elements are not used in XDS, therefore would not be present. Document Consumers should be robust to these elements holding values.",
"max": "0"
},
{
"id": "List.entry.deleted",
"path": "List.entry.deleted",
"comment": "These HL7 FHIR STU3 elements are not used in XDS, therefore would not be present. Document Consumers should be robust to these elements holding values.",
"max": "0"
},
{
"id": "List.entry.date",
"path": "List.entry.date",
"comment": "These HL7 FHIR STU3 elements are not used in XDS, therefore would not be present. Document Consumers should be robust to these elements holding values.",
"max": "0"
},
{
"id": "List.emptyReason",
"path": "List.emptyReason",
"comment": "These HL7 FHIR STU3 elements are not used in XDS, therefore would not be present. Document Consumers should be robust to these elements holding values.",
"max": "0"
}
]
}
}
Loading

0 comments on commit 15fe33c

Please sign in to comment.