What?
Provide a single comprehensive security-enabled read/write data model for all VA VISTA data across all VA VISTA operational systems, establishing a common technical foundation for master data management and computable data representation and exchange between VA and DoD clinical information systems. --- PWS 1.1
Where?
All artifacts and deliverables shall be developed, version-controlled, stored, and delivered on an industry-standard public Github repository (“Project Repository”). ... The Project Repository shall contain the one and only authoritative version of all artifacts produced ... The government, all necessary stakeholders, and the public shall have full read and download access of all artifacts on the Project Repository at all times --- PWS 1.6.15.1
The Project organizes deliverables in five “tracks” each backed by one or more Gits in the Project Repository.
Track | Name | Description | Git | Technical Deliverables |
---|---|---|---|---|
A | Infrastructure | Project infrastructure including Test VISTA (“nodeVISTA”), gits, tooling, website | nodeVISTA, Website, documents | 3 |
B | VDM | VISTA Data Model (VDM) - native model exposure and package implementation for any specific VISTA | VDM | 12 |
C | MVDM | Master VISTA Data Model (MVDM) - definition and implementation of master data model spanning all VISTA instances | MVDM | 9 |
D | MVDMmap | Mapping MVDM to other models such as FHIR | MVDMmap | 3 |
PM | Project Management | Business/Project Management | documents |
From PWS 8.2 ...
Artifact | Format(s) | License |
---|---|---|
Data | CSV if tabular structure; JSON-LD for all other structures. | Creative Commons CC0 |
Metadata | JSON-LD | Creative Commons CC0 |
Documents | Markdown (git Markdown or Docbook). From this HTML and PDF shall be auto-generated | Creative Commons CC0 |
Code (Software) | Source code, and all dependent code, with full version control history | Apache 2.0 |
The forms and licenses are in keeping with the requirement that All artifacts and deliverables shall be developed, version-controlled, stored, and delivered on an industry-standard public Github repository (“Project Repository”)
.
27 Technical Deliverables involve:
- 8 MetaData Definitions/System Configurations
- 18 Software
- 6 Documents
More artifacts may be identified as work proceeds.
# | Name | Format | Functon | Deliverable(s) |
---|
- | dd.jsonld | JSON-LD | Formal, portable definition of the contents of a VISTA data dictionary | 8
- | rpc.jsonld | JSON-LD | Formal definition of the model implicit in RPCs, captured in JSON-LD | E1
- | vpr.jsonld | JSON-LD | Formal definition of the VPR RPC's patient data model in JSON-LD | Part of 10.1
- | vdm.jsonld | JSON-LD | Formal definition of Native VISTA data model based on one or more dd.jsonld's and rpc.jsonld | 7.1, 7.2
- | mvdm.jsonld | JSON-LD | Formal definition of the MVDM subset of VDM that supports full CRUD | 10.1, 10.2
- | piks.jsonld | JSON-LD | Formal annotation of vdm.jsonld that distinguishes Patient, Institution, Knowledge and System (PIKS) classes and properties | 18
- | nodeVISTA Scenarios | GT.M and Cache Databases | VISTA databases for testing and demonstrations | Part of E2.2 Development
- | MVDM to FHIR Rules | Rules Format | Translation rules (MVDM to FHIR) | Part of 39
# | Name | Language | Function | Deliverable(s) |
---|
- | DDJLD Maker | Python/ Javascript | Caches FileMan Data Dictionary (dd) from a VISTA and creates a dd.jsonld | 8
- | RPCJLD Maker | Python/ Javascript | Caches RPC definitions from a VISTA and creates an rpc.jsonld | E1
- | nodeVISTA | VISTA, node.js | A test VISTA based on OSEHRA's VISTA and a simple node.js front end | E3
- | nodeVISTA Commands | Javascript (node.js) | invocations of mainly write-back functions in VISTA to prepare for the write-back support of VDM Package | Part 7.2, E2.2
- | VDM Maker | Python/ Javascript | Creates a VISTA Data Model (VDM), vdm.jsonld, from a VISTA's dd.jsonld and rpc.jsonld | 7.1, 7.2
- | VDM Package | Javascript (node.js module), MUMPS | Implements VDM inside Fileman. The first version will support querying ("Read-only"). The full version will support Create-Read-Update-Delete and transactions. | E2.1, E2.2
- | MVDM Maker | Python/ Javascript | Creates a Master VISTA Data Model (MVDM), mvdm.jsonld, from one or more vdm.jsonld's and vpr.jsonld | 10.1, 10.2
- | MVDM Module | Javascript (node.js module) | Implements MVDM inside Fileman over the VDM Package. The first version will support querying ("Read-only"). The full version will support Create-Read-Update-Delete and transactions. | 11.1, 11.2
- | MVDM Test Suite | Javascript | A series of tests focused on write-back support of the MVDM Module. Tests VDM write-back as MVDM relies on VDM. | 35
- | PIKS Generator | Python | Generates Patient, Institution, Knowledge and System (PIKS) annotations in piks.jsonld for a vdm.jsonld | 19
- | Patient Security Prototype | Javascript (node.js) | An illustration of PIKS-enabled Patient level security. This involves an example client and an addition to FQS | 28
- | FQS | Javascript (node.js) | Fileman Query Service (FQS) based on embedded VDM model (REST service; read only) | 25
- | Example Query Clients | Python, Javascript | Example command line clients that show how to use the FQS | 25
- | FQS Web Client | Javascript, HTML | Browser based client for using the FQS | 33
- | Metadata Cacher | Javascript | queries (VISTA Application) metadata using VDM Package | 15
- | FHIR Translator | Javascript, Translation rules | prototypes showing mapping from MVDM to FHIR | 39
- | Web-based Rules Hub | Javascript, HTML | host for Translation rules | 32
- | Document Generators | Various | Generators of documentation leveraging common packages such as Sphinx and JSDoc and translators from Markdown to PDF and HTML | E4
Note that VDM Package and MVDM Module are the key software artifacts of the Project. Other software either helps in their development or configuration or illustrates their use.
Per the PWS, all non PM documentation will be delivered on the Project Gits in the Markdown format.
# | Name | Deliverable :---: | :--- | --- | :---:
- | Website | 13
- | (Document) Approach to “Live VDM” Maintenance of Current State | 9
- | [MVDM] Normalization Reports | 12
- | Report on [MVDM] Exposure of older models | 14
- | Prototype Patient-centric Data Security [Document] | 28 (Document)
- | Document VISTA-ese vs. FHIR | 40
In addition, programmer documentation will be generated for VDM Package, MVDM Module and FQS.
Input | Software | Output |
---|---|---|
Fileman DD | DDJLD Maker | dd.jsonld |
RPC models | RPCJLD Maker | rpc.jsonld |
VPR RPC models | VPR Maker | vpr.jsonld |
dd.jsonld + rpc.jsonld | VDM Maker | vdm.jsonld |
vdm.jsonld + vpr.jsonld | MVDM Maker | mvdm.jsonld |
vdm.jsonld | PIKS Generator | piks.jsonld |
MVDM | MVDMmap | FHIR |
Markdown | Doc Generator | PDF, HTML |
In addition to the deliverables listed in the Project’s PWS (Section 8.2), additional deliverables were identified for planning purposes. Such deliverables have been identified with a prefix of “E”. Deliverables 7, 10, and 11 were divided and designated .1 and .2 for VDM and MVDM, respectively.
Track | PWS# | Name | Git | Content(s) | Format(s) | WBS | PWS Section |
---|---|---|---|---|---|---|---|
A | 13 | Website | Website | website, infographics to showcase the contents of the VDM and MVDM Subset | HTML, Javascript (d3.js) | Q1 → Q4 | 5.3.2 |
A | E3 | FileMan TEST VISTA ["nodeVISTA"] | nodeVISTA | a test VISTA ("nodeVISTA") that hosts different test datasets ("nodeVISTA Scenarios") | VISTA System, Vagrant | Q1 → Q4 | |
A | E4 | Document Generators | documents | Programmer documentation will be generated using tools such as Sphinx (http://sphinx-doc.org/) and JSDoc (http://usejsdoc.org/). Important Markdown-formatted documents need to be translated into PDF and HTML | Various | Q1 → Q3 | |
B | 7.1 | Machine Processable VISTA Data Model (VDM) "Read Only" | VDM | vdm.jsonld, the native VISTA data model in JSON-LD based on one or more dd.jsonld's. VDM Maker, a program that creates vdm.jsonld from dd.jsonld's. This version will support query/read ("VDM (read)"). |
JSON-LD, Python, Javascript | Q1 | 5.3.1 |
B | 7.2 | Machine Processable VISTA Data Model (VDM) | VDM | vdm.jsonld, enhanced by write-data in _dd.jsonld_s and rpc.jsonld. VDM Maker must process more information from dd.jsonld's and process rpc.jsonld. |
JSON-LD, Python, Javascript | Q2 → Q4 | 5.3.1 |
B | 8 | Date-stamped FileMan Data Model Implementations (Definitions) (cross refs, triggers ...) | VDM | dd.jsonld, a data dictionary captured in JSON-LD DDJLD Maker, a program that caches and interprets the dictionaries from VISTAs in JSON-LD form. MUMPS code reduction will be needed for write-back support |
JSON-LD, Python, Javascript | Q1 → Q2 | 5.3.1 |
B | E1 | RPC Model | VDM, nodeVISTA | formal definition of the model implicit in "write-back RPCs", rpc.jsonld. Required for write support in vdm.jsonld (#7.2/#E2.2). Created with RPCJLD Maker. It may encompass VISTA Options (file 101) too | JSON-LD, Python | Q1 → Q3 | |
B | E2.1 | VDM Package "Read-only" | VDM | a package that implements the VDM inside a VISTA. It will allow any FileMan data to be queried according to the VDM. | Javascript (node.js), MUMPS (KIDS) | Q1 | |
B | E2.2 | VDM Package | VDM, nodeVISTA | Will add support for creating, updating and deleting (full CRUD) VISTA Data enabled by a write-back supporting VDM (#7.2). Initial write-back testing (in Q1) will be directly against nodeVISTA ("nodeVISTA Commands") | Javascript (node.js), MUMPS (KIDS) | Q1 → Q4 | |
B | 9 | (Document) Approach to “Live VDM” Maintenance of Current State | VDM (Wiki) | In a wiki page, describe ways in which dd.jsonld definitions and hence vdm.jsonld could keep pace with changes in VISTAs | Markdown | Q4 | 5.3.1 |
B | 15 | Date Stamped (Application) Meta Data for lab, surgery and other applications | VDM | Metadata Cacher that queries meta-data using VDM package (Read) | Python, JSON-LD | Q2 | 5.3.3 |
B | 18 | Machine-processable [PIKS] Annotations | VDM | Distinguish patient data from other types of VISTA data in a formal definition piks.jsonld. A VDM PIKS definition enables MVDM PIKS which in turn enables patient-centric security (#28) | JSON-LD | Q2 | 5.3.4 |
B | 19 | Software code [for PIKS] | VDM | PIKS Annotation Generator. Relies on VDM Package (Read) to create a piks.jsonld | Python | Q2 | 5.3.4 |
B | 25 | Prototype query access to VISTA Data against VDM ["FQS"] | VDM | Example Query clients that query (read-only) nodeVISTA using a REST-based FileMan Query Service (FQS) implemented over VDM Package (Read) | Javascript, Python, JSON-LD | Q2 | 5.4.1 |
B | 33 | Prototype Web-Based Query Interface to FileMan [VDM] Data | VDM | FQS Web Client for using VDM Package (Read) | Javascript | Q2 → Q3 | 5.4.1 |
C | 10.1 | Master VISTA Data Model (MVDM) "Read-only" | MVDM | mvdm.jsonld, a formal “MVDM Subset” definition with much of the scope of the VPR RPC which must be formally captured in vpr.jsonld. | JSON-LD | Q1 → Q2 | 5.3.2 |
C | 10.2 | Master VISTA Data Model (MVDM) | MVDM | full CRUD support rounded out for mvdm.jsonld. | JSON-LD | Q2 → Q4 | 5.3.2 |
C | 11.1 | [MVDM over VDM] Heuristic (mapping) code "Read-only" [MVDM Module] | MVDM | mapping tables and rules implemented in a MVDM module that delivers a read-only version of MVDM over the VDM Package "Read-only". | Javascript (node.js), JSON | Q2 | 5.3.2 |
C | 11.2 | [MVDM over VDM] Heuristic (mapping) code [MVDM Module] | MVDM | full CRUD support added to MVDM Module (Read). | Javascript (node.js), JSON | Q3 → Q4 | 5.3.2 |
C | 12 | [MVDM] Normalization Reports | MVDM (Wiki) | Documents VDM to MVDM mapping as implemented in Deliverable #11. | Markdown | Q2 → Q4 | 5.3.2 |
C | 14 | Report on [MVDM] Exposure of older models | MVDM (Wiki) | Describe how older, cruder models could be handled in the MVDM | Markdown | Q4 | 5.3.2 |
C | 28 | Prototype Patient-centric Data Security | MVDM | First document and then provide a self- contained prototype ("Patient Security Prototype") that shows how PIKS- enabled annotations enable patient-centric secure queries. The prototype will enhance FQS and have an example client | Javascript, Markdown | Q3 → Q4 | 5.4.1 |
C | 35 | VISTA Application model(s)/Prototype(s) [Tests] | MVDM | MVDM write back tests (tier 1 through 3), enabled by mvdm.js configurations. Test scenarios for Deliverable #11. | Javascript, Python | Q2 → Q4 | 5.4.2 |
C | 36 | Meta-model(s) [VPR] Prototype(s) | MVDM | Test code that shows how well the MVDM supports VPR (Read-only) convenience methods - read-only side of #35 | Javascript, Python | Q2 → Q3 | 5.4.2 |
D | 32 | Prototype Web-based Rules Hub | MVDMmap | Prototype a sharable, crowd source-able mechanism to exchange and grow a library of open, standards-based, validated, and exchangeable transformation rules | Web-based interface | Q3 | 5.4.1 |
D | 39 | Reference model(s)/Prototype(s) ["FHIR Translator"] | MVDMmap | Prototypes that demonstrate mapping from MVDM to FHIR | Javascript and/or other translation rules languages | Q3 → Q4 | 5.4.2 |
D | 40 | Document VISTA-ese vs. FHIR | MVDMmap | Human-readable mapping descriptions | Markdown | Q3 → Q4 | 5.4.2 |
PM | 1AA | Artifact Repository | Project Gits | ALL | ALL | Q1 | 8.2 |
PM | 1A | Non-disclosure/Non-Use Agreement | Q1 | 6.1 | |||
PM | 1B | Quality Control Plan [QCP] | documents | an effective quality control program | Q1 | 1.6.1 | |
PM | 1C | Phase-out Migration Plan | documents | elaborates the artifacts to be transitioned on the Project Repository, and a schedule for transition completion | Q4 | 1.6.17 | |
PM | 2 | Program Management Plan (PMP) | documents | strategy to accomplish the tasks and include the risk, quality and technical management approach, work breakdown structure (WBS), schedule management approach, schedule, cost requirements, and proposed staffing | Q1 | 5.2 | |
PM | 3 | Program Schedule and Monthly Updates | documents | schedule, updated monthly | Monthly | 5.2 | |
PM | 4 | Monthly Progress Report | includes project status and financial management reporting | Monthly | 5.2 | ||
PM | 5 | Quarterly Strategic Communications Message | documents | project progress and feasibility of transition to production | Quarterly | 5.2 | |
Notes:
- Enumerated above are 27 technical deliverables within four tracks ( VDM, MVDM, MVDMmap, and Infrastructure).
- Deliverables E1-4 are required but not explicitly enumerated in the PWS.
- Deliverable #’s have gaps. The following PWS deliverables were retired as redundant or out of scope per government determination: 6, 16, 17, 20-24, 26, 27, 29-31, 34, 37, 38
- There is a substantial difference in complexity between read-only and read-write models and implementations. To write anything demands knowledge of rules that go beyond the demands of reading. As a result, both VDM and MVDM models and packages will be delivered in two phases, with read coming first.
- VDM "Read" and its package (#7.1 and #E1.1) are due in Q1; Deliverables #8, #15, #18, #19, #25, #33 only require such read-only functionality and are due in Q2
- MVDM "Read" and its module (#10.1 and #11.1) are due in Q2: Deliverables #28, #36 and all of track D rely only on MVDM ("Read").
- Read-only VDM and by extension MVDM will expand on open source FMQL