Index: /ccr/trunk/proj_docs/proj_plan
===================================================================
--- /ccr/trunk/proj_docs/proj_plan	(revision 20)
+++ /ccr/trunk/proj_docs/proj_plan	(revision 20)
@@ -0,0 +1,93 @@
+
+ Everybody,
+
+ We have been spending a lot of time discussing strategies on how we
+ are going to proceed about this project. Initially, we were going to
+ produce a CCD, and we didn't have quite a plan on how we are going to
+ extract the data except as piecemeal. With the advent of the U of Minn
+ on the project, and with Emory's discussions, we are going to extract
+ a CCR (and I am infinitely happy; the CCD spec belongs to the garbage
+ can; I willingly send my abominations to the HL7 committee), and we
+ are going to use Mumps Routines called by CPRS for most of the data
+ extraction.
+
+ There has been a lot of bantering around, and I wish for us to settle
+ this by deciding a general strategy and the steps needed to produce
+ it, as well as a timeline and expected deliverables. May I propose
+ that the initial CCR be generated completely from Mumps without us
+ having to do any GUI programming. Why? At this point we have not even
+ defined the requirements that any of the steps are going to satisfy
+ (at least that is the way it seems to me); developing the stuff in
+ Mumps will at least help us define the requirements; plus, it is
+ always my belief in anything Vista that the functionality must be
+ available using the roll-and-scroll interface. Does that mean we don't
+ need Java programmers? Absolutely not! I would like them to work in
+ tandem with the Mumps development process to produce the GUI.
+
+ Here is my plan, sketched on the plane...
+ 0. Read the CCR Spec from beginning to end
+ 1. Enumerate the sections of the CCR, defining what data is needed for
+ each section. (This step is almost done for us by the spec.)
+ 2. Define the needs of the end user on how they are to use the CCR
+ functionality (this is very important and has not been done)
+ 3. Define a Mumps strategy on how to extract the data (more on that below)
+ 5. Define where the data is going to be extracted from (this is being
+ carried out by George right now)
+ 6. Document Data Output from M/CPRS (RPC's etc.)
+ 7. Match data from CPRS with CCR sections
+ 8. Define routines that need to be written/modified in order to allow
+ us to fill in the missing info for CCR that's not in CPRS (e.g. LOINC
+ codes for Labs; they are not in the RPC)
+ 9. Write the M code to extract the data from each of the sections
+ 10. Write a Mumps XML Writer
+ 11. Write the CCR writer that utilizes the XML Writer for output
+ 12. Write the CCR user interface that does the user interaction,
+ initially in MUMPS, then in a GUI.
+ 13. Write a CCR viewer, initially in Mumps, then in a GUI.
+
+ I am most concerned with step #2. We need to do mock-ups and present
+ them for ideas.
+
+ Deliverables (#'s refer to above):
+ 1. Spreadsheet
+ 2. Needs document; roll-and-scroll and GUI mock-ups.
+ 3. Document
+ 5. Document
+ 6. Series of Documents for each RPC
+ 7. Spreadsheet from #1, modified
+ 8. Document; work assignments for completion
+ 9. Working Code - unit tested
+ 10. Working Code
+ 11. Working Code
+ 12. Working Code
+ 13. Working Code
+
+ Each of the steps may take a loooooooooong time... Witness George's
+ analysis of the RPCs. We need to take advantage as much as possible of
+ parallelism; while George is analyzing the RPCs, somebody can be
+ writing the Mumps XML output routine, and others can be defining user
+ needs, and others can be constructing CCR/Vista data spreadsheets.
+
+ The other thing I thought about is how are we going to write the Mumps
+ Routines to extract the data. This is all tenative:
+ 0. CCRCOMP () - Routine to ask user about patient, purpose of CCR,
+ receipient, transmission method, sections, date range
+ 1. CCRPROC (DFN, ARRAY1, DUZ, DOCTYPE, BEGDATE, ENDDATE) - Routine to
+ process CCRCOMP choices that calls the next routine
+ 2. CCRSECTIONS - Outputs data into
+ ^TMP($J,"CCR",Section,Name,Value,SubValues,ActorID)
+ a. Demograhics (DFN)
+ b. Purpose
+ c. Payers (DFN, DT)
+ d. Meds (DFN, DT1, DT2, DetailFlag)
+ e. Labs (DFN, DT1, DT2, DetailFlag) etc etc.
+ 3. MXMLWRIT (Name, ATTRIBUTE array, Value) - Writes XML from Mumps
+ 4. CCRWRITE (^TMP array) - Write data from ^TMP to the file system
+ using MXMLWRIT
+
+ --
+ Sam
+
+ PS: George has been kind enough to host me at his NY apartment for
+ hammering out the details of our implementation and show me his
+ progress thus far.
