| 1 | 
 | 
|---|
| 2 |  Everybody,
 | 
|---|
| 3 | 
 | 
|---|
| 4 |  We have been spending a lot of time discussing strategies on how we
 | 
|---|
| 5 |  are going to proceed about this project. Initially, we were going to
 | 
|---|
| 6 |  produce a CCD, and we didn't have quite a plan on how we are going to
 | 
|---|
| 7 |  extract the data except as piecemeal. With the advent of the U of Minn
 | 
|---|
| 8 |  on the project, and with Emory's discussions, we are going to extract
 | 
|---|
| 9 |  a CCR (and I am infinitely happy; the CCD spec belongs to the garbage
 | 
|---|
| 10 |  can; I willingly send my abominations to the HL7 committee), and we
 | 
|---|
| 11 |  are going to use Mumps Routines called by CPRS for most of the data
 | 
|---|
| 12 |  extraction.
 | 
|---|
| 13 | 
 | 
|---|
| 14 |  There has been a lot of bantering around, and I wish for us to settle
 | 
|---|
| 15 |  this by deciding a general strategy and the steps needed to produce
 | 
|---|
| 16 |  it, as well as a timeline and expected deliverables. May I propose
 | 
|---|
| 17 |  that the initial CCR be generated completely from Mumps without us
 | 
|---|
| 18 |  having to do any GUI programming. Why? At this point we have not even
 | 
|---|
| 19 |  defined the requirements that any of the steps are going to satisfy
 | 
|---|
| 20 |  (at least that is the way it seems to me); developing the stuff in
 | 
|---|
| 21 |  Mumps will at least help us define the requirements; plus, it is
 | 
|---|
| 22 |  always my belief in anything Vista that the functionality must be
 | 
|---|
| 23 |  available using the roll-and-scroll interface. Does that mean we don't
 | 
|---|
| 24 |  need Java programmers? Absolutely not! I would like them to work in
 | 
|---|
| 25 |  tandem with the Mumps development process to produce the GUI.
 | 
|---|
| 26 | 
 | 
|---|
| 27 |  Here is my plan, sketched on the plane...
 | 
|---|
| 28 |  0. Read the CCR Spec from beginning to end
 | 
|---|
| 29 |  1. Enumerate the sections of the CCR, defining what data is needed for
 | 
|---|
| 30 |  each section. (This step is almost done for us by the spec.)
 | 
|---|
| 31 |  2. Define the needs of the end user on how they are to use the CCR
 | 
|---|
| 32 |  functionality (this is very important and has not been done)
 | 
|---|
| 33 |  3. Define a Mumps strategy on how to extract the data (more on that below)
 | 
|---|
| 34 |  5. Define where the data is going to be extracted from (this is being
 | 
|---|
| 35 |  carried out by George right now)
 | 
|---|
| 36 |  6. Document Data Output from M/CPRS (RPC's etc.)
 | 
|---|
| 37 |  7. Match data from CPRS with CCR sections
 | 
|---|
| 38 |  8. Define routines that need to be written/modified in order to allow
 | 
|---|
| 39 |  us to fill in the missing info for CCR that's not in CPRS (e.g. LOINC
 | 
|---|
| 40 |  codes for Labs; they are not in the RPC)
 | 
|---|
| 41 |  9. Write the M code to extract the data from each of the sections
 | 
|---|
| 42 |  10. Write a Mumps XML Writer
 | 
|---|
| 43 |  11. Write the CCR writer that utilizes the XML Writer for output
 | 
|---|
| 44 |  12. Write the CCR user interface that does the user interaction,
 | 
|---|
| 45 |  initially in MUMPS, then in a GUI.
 | 
|---|
| 46 |  13. Write a CCR viewer, initially in Mumps, then in a GUI.
 | 
|---|
| 47 | 
 | 
|---|
| 48 |  I am most concerned with step #2. We need to do mock-ups and present
 | 
|---|
| 49 |  them for ideas.
 | 
|---|
| 50 | 
 | 
|---|
| 51 |  Deliverables (#'s refer to above):
 | 
|---|
| 52 |  1. Spreadsheet
 | 
|---|
| 53 |  2. Needs document; roll-and-scroll and GUI mock-ups.
 | 
|---|
| 54 |  3. Document
 | 
|---|
| 55 |  5. Document
 | 
|---|
| 56 |  6. Series of Documents for each RPC
 | 
|---|
| 57 |  7. Spreadsheet from #1, modified
 | 
|---|
| 58 |  8. Document; work assignments for completion
 | 
|---|
| 59 |  9. Working Code - unit tested
 | 
|---|
| 60 |  10. Working Code
 | 
|---|
| 61 |  11. Working Code
 | 
|---|
| 62 |  12. Working Code
 | 
|---|
| 63 |  13. Working Code
 | 
|---|
| 64 | 
 | 
|---|
| 65 |  Each of the steps may take a loooooooooong time... Witness George's
 | 
|---|
| 66 |  analysis of the RPCs. We need to take advantage as much as possible of
 | 
|---|
| 67 |  parallelism; while George is analyzing the RPCs, somebody can be
 | 
|---|
| 68 |  writing the Mumps XML output routine, and others can be defining user
 | 
|---|
| 69 |  needs, and others can be constructing CCR/Vista data spreadsheets.
 | 
|---|
| 70 | 
 | 
|---|
| 71 |  The other thing I thought about is how are we going to write the Mumps
 | 
|---|
| 72 |  Routines to extract the data. This is all tenative:
 | 
|---|
| 73 |  0. CCRCOMP () - Routine to ask user about patient, purpose of CCR,
 | 
|---|
| 74 |  receipient, transmission method, sections, date range
 | 
|---|
| 75 |  1. CCRPROC (DFN, ARRAY1, DUZ, DOCTYPE, BEGDATE, ENDDATE) - Routine to
 | 
|---|
| 76 |  process CCRCOMP choices that calls the next routine
 | 
|---|
| 77 |  2. CCRSECTIONS - Outputs data into
 | 
|---|
| 78 |  ^TMP($J,"CCR",Section,Name,Value,SubValues,ActorID)
 | 
|---|
| 79 |  a. Demograhics (DFN)
 | 
|---|
| 80 |  b. Purpose
 | 
|---|
| 81 |  c. Payers (DFN, DT)
 | 
|---|
| 82 |  d. Meds (DFN, DT1, DT2, DetailFlag)
 | 
|---|
| 83 |  e. Labs (DFN, DT1, DT2, DetailFlag) etc etc.
 | 
|---|
| 84 |  3. MXMLWRIT (Name, ATTRIBUTE array, Value) - Writes XML from Mumps
 | 
|---|
| 85 |  4. CCRWRITE (^TMP array) - Write data from ^TMP to the file system
 | 
|---|
| 86 |  using MXMLWRIT
 | 
|---|
| 87 | 
 | 
|---|
| 88 |  --
 | 
|---|
| 89 |  Sam
 | 
|---|
| 90 | 
 | 
|---|
| 91 |  PS: George has been kind enough to host me at his NY apartment for
 | 
|---|
| 92 |  hammering out the details of our implementation and show me his
 | 
|---|
| 93 |  progress thus far.
 | 
|---|