45. EPMO Open Source Coordination Office Redaction File Detail Report

Produced by Araxis Merge on 10/2/2017 7:00:19 AM Central Daylight Time. See www.araxis.com for information about Merge. This report uses XHTML and CSS2, and is best viewed with a modern standards-compliant browser. For optimum results when printing this report, use landscape orientation and enable printing of background images and colours in your browser.

45.1 Files compared

# Location File Last Modified
1 cds.zip\cds\product\production\opencds\opencds-documentation\SourceMaterialAndNotes\AnIntroduction OpenCDS Design v2.doc Fri Jul 1 17:45:46 2016 UTC
2 cds.zip\cds\product\production\opencds\opencds-documentation\SourceMaterialAndNotes\AnIntroduction OpenCDS Design v2.doc Wed Sep 27 16:05:11 2017 UTC

45.2 Comparison summary

Description Between
Files 1 and 2
Text Blocks Lines
Unchanged 2 668
Changed 1 2
Inserted 0 0
Removed 0 0

45.3 Comparison options

Whitespace
Character case Differences in character case are significant
Line endings Differences in line endings (CR and LF characters) are ignored
CR/LF characters Not shown in the comparison detail

45.4 Active regular expressions

No regular expressions were active.

45.5 Comparison detail

  1   OpenCDS De sign  
  2   Last updat ed 2010-07 -08
  3   David Shie lds, Duke  University
  4   Requiremen ts
  5   Use OMG DS S specific ation and  SOAP Web S ervices fo r external  interface s
  6   Use Drools -API for c ommunicati on with Dr ools Core  (Expert)
  7   Use adapte r similar  to the one  written f or Sebasti an to talk  to org.dr ools.runti me.Statefu lKnowledge Session
  8   Use Drools  Guvnor to  design an d manage r ules
  9   Also may w rite rules  in JBOSS  IDE (Eclip se) and in  Excel, an d import t hem into G uvnor
  10   Initially  use modifi ed version  of Sebast ian payloa ds
  11   Hope to us e vMR for  payloads,  when vMR i s availabl e
  12   Initially  implement  just the E valuate op eration
  13   Long term  needs to p rovide rul es documen tation sim ilar to th at found i n PSMs
  14   Specificat ions 
  15   See docume ntation on  Administr ation Serv er at S:\T ools-Engin eering\dro ols-docs-a ll
  16   Read the “ drools-doc s” first
  17   Look at th e “drools- 5.0-exampl es”
  18   Use the “d rools-java docs” as r equired
  19   DSS Knowle dge Module  maps to D rools Know ledgeBase  (Rules)
  20   Identifica tion of a  Knowledge  Module wil l follow O MG DSS spe cs
  21   DSS Data R equirement  (payload)  maps to D rools Fact
  22   Sebastian  Entity cla sses will  be furnish ed to Droo ls as Fact  maps
  23   How to do  this?
  24   Implement  Evaluation  by callin g Drools c lasses dir ectly
  25   Sample Cod e
  26   package co m.notidiot s;
  27   import org .drools.Ru leBase;
  28   import org .drools.ag ent.RuleAg ent;
  29   import org .drools.de finition.t ype.FactTy pe;
  30   public cla ss Mortgag eApplicati onTest {
  31  
  32   /**
  33  
  34    * @param  args
  35  
  36    * @throws  IllegalAc cessExcept ion
  37  
  38    * @throws  Instantia tionExcept ion
  39  
  40    */
  41  
  42   public sta tic void m ain(String [] args) t hrows Inst antiationE xception,  IllegalAcc essExcepti on {
  43  
  44  
  45   RuleAgent  agent = Ru leAgent.ne wRuleAgent ("/mortgag eapproval. properties ");
  46  
  47  
  48   RuleBase r b = agent. getRuleBas e();
  49  
  50  
  51   FactType a ppType = r b.getFactT ype("mortg ages.LoanA pplication ");
  52  
  53  
  54   FactType i ncomeType  = rb.getFa ctType("mo rtgages.In comeSource ");
  55  
  56  
  57   Object app lication =  appType.n ewInstance ();
  58  
  59  
  60   Object inc ome = inco meType.new Instance() ;
  61  
  62  
  63   appType.se t(applicat ion, "amou nt", 25000 );
  64  
  65  
  66   appType.se t(applicat ion, "depo sit", 1500 );
  67  
  68  
  69   appType.se t(applicat ion, "leng thYears",  20);
  70  
  71  
  72   incomeType .set(incom e, "type",  "Job");
  73  
  74  
  75   incomeType .set(incom e, "amount ", 65000);
  76  
  77  
  78   rb.newStat elessSessi on().execu te(new Obj ect[] {app lication,  income});
  79  
  80  
  81   System.out .println(a pplication );
  82  
  83   }
  84   }
  85   Steps to I nitial Imp lementatio n
  86   Create Ada pter
  87   Import Fac t Model fr om Sebasti an Entity,  Act, and  Demographi c Model
  88   Also impor t various  utilities  used in ru les
  89   Duplicate  a few exis ting Sebas tian PSMs  as Drools  Rules
  90   Compare Re sults 
  91   Follow-up  Steps 
  92   Improve Fa ct Model t o become p reliminary  vMR
  93   Work on pr oviding 2  level inte rface
  94   Low-level:  Codes and  Vocabular y to Defin e Concepts
  95   High-level : Using Co ncepts to  do Decisio n Logic
  96   Translate  Sebastian  PSMs to Dr ools Rules
  97   Try to do  all of a f unctional  set, eg, C CNC
  98   Glossary T able compa ring OMG D SS to Droo ls and Seb astian
  99   OMG DSS Te rmCorrespo nding Droo ls TermCor responding  Sebastian  TermData  Payload –  OMG DSS do es not def ine the co ntents of  a payload,  but state s that it  must be st ructured i n XML, and  have a se mantic sig nifier tha t points t o a schema  for it.   DSS specif ies two ty pes of pay loads:  “R equest” an d “Respons e.”Fact Ma p – define d as class es that ca n be gener ated from  schema, or  written a s java cla sses.  The y are not  further de fined by D rools, bec ause they  can be def ined at ru ntime, if  necessary. Demographi cs + Acts  are two se parate par ts of the  Sebastian  “Request”  payload.   They are d efined as  classes th at are rou ghly based  on the HL 7v3 RIM.   Most of th e volume o f the date  is found  in lists o f Healthca re Acts.   The data s tructures  of these “ Acts” are  found in t he “Sebast ian Common ” module.
  100   There is a lso a Seba stian “Res ponse” pay load defin ed in the  Sebastian  Schema.Kno wledge Mod ule (KM fo r short) d efines pie ces of med ical knowl edge which  have an I D, and kno w how to l ook at a “ Request Pa yload” and  to produc e a “Respo nse Payloa d”.  The c ontent of  a KM is no t specific ally defin ed by OMG  DSS, howev er, OMG DS S does spe cify queri es for cri tical piec es of meta data and K M traits.   Rules (no w known as  Drools Kn owledgeBas e) are wri tten in a  high-level  scripting  language,  which can  be create d by a tex t editor ( aka Rule W orkbench o r JBoss ID E) or impo rted from  a spreadsh eet.  An o pen-source  web-based  authoring  tool know n as Guvno r is also  provided f or writing , editing,  testing,  and managi ng the rul es.PSM – ( originally  Patient S afety Modu le)  are c reated as  XML docume nts using  a propriet ary templa te designe d in Infop ath.  Thes e XML docu ments cont ain metada ta about t he PSM, al ong with d efinition  of the Dem ographics  requiremen ts for the  rule, and  the Act r equirement s for the  rule.  Man y PSMs wil l include  lists of v ocabulary  elements t hat define  the natur e of a par ticular “A ct.”  Most  of the so ftware use d to imple ment the l ogic of a  PSM is fou nd in the  “Sebastian  Common” m odule.Deci sion Suppo rt Service  – typical ly this te rm refers  to the ana lysis or “ decision s upport” en gine, toge ther with  rules or k nowledge a lgorithms,  and input  and outpu t data str uctures.   The portio n of DSS t hat is mos t analogou s to Drool s Expert i s the anal ysis engin e.Drools E xpert – is  the guts  of the ana lysis engi ne, and it  processes  the Fact  Map agains t the Know ledgebaseP smManager  – processe s all the  nested PSM s for a pa rticular “ request.”( no equival ent term,  although I terative E valuation  is similar  to some a spects of  Drools Flo w, and it  is possibl e to exter nally defi ne daisy-c hained pro cesses)Dro ols Flow –  processes  workflow,  where com puterized  decision s upport int eracts wit h human an d other pr ocesses.(n o equivale nt term, a lthough PS Ms can be  nested and  daisy-cha ined, to e mulate som e aspects  of Drools  Flow)(no e quivalent  term)Drool s Fusion –  processes  events.   Events hav e these ch aracterist ics:
  101   they are i mmutable
  102   they have  strong tim e-related  relationsh ips
  103   they may h ave clear  lifecycle  windows
  104   they may b e transpar ently garb age collec ted after  it's lifec ycle windo w expires
  105   they may b e time-con strained
  106   they may b e included  in slidin g windows  for reason ing
  107   (no equiva lent term) DSS WSDL a nd Schema  define ext ernal oper ations tha t can be p erformed a gainst a D ecision En gine.  The se are hig h-level de finitions  that inclu de:
  108     Evaluat ion
  109   Iterative  Evaluation
  110     Query ( List PSMs  is closest  Sebastian  analogue)
  111     Metadat a Discover y (may be  done using  the Guvno r web GUI  in Drools,  but Sebas tian allow s viewing  Metadata u sing an In foPath Tem plate)
  112   Drools API  defines t he operati ons that c an be done  against a  Knowledge Base, and  the operat ions that  can be use d to popul ate a Fact  Map.  The re are 5 j ava interf aces:
  113   org.drools .builder.K nowledgeBu ilder
  114   org.drools .Knowledge Base
  115   org.drools .agent.Kno wledgeAgen t
  116   org.drools .runtime.S tatefulKno wledgeSess ion
  117   org.drools .runtime.S tatelessKn owledgeSes sion 
  118   The first  three inte rfaces dea l primaril y with mai ntenance o f the Rule s (Knowled ge Modules  in OMG DS S terms)
  119   The Statef ul Knowled ge Session  most clos ely corres ponds to O MG DSS Eva luation an d the Seba stian Deci sion Engin e Request,  while the  Stateless  Knowledge  Session m ost closel y correspo nds to OMG  DSS Itera tive Evalu ation.
  120   Drools Cor e web serv ice does n ot appear  to have bu ilt-in cap abilities  to List Ru lesSebasti an Schema  for Decisi on Request  defines s everal ope rations:
  121     Decisio n Engine R equest (si milar to O MG DSS Eva luation an d Drools S tateless K nowledge S ession)
  122     List PS Ms (simila r to OMG D SS Query)
  123     InfoPat h PSM Temp late (serv es some of  the funct ions of OM G DSS Meta data Disco very, but  is not ava ilable ove r web serv ice)
  124   OMG DSS SO AP Evaluat ion Servic e roughly  maps to (R ESTful Dro ols Statel ess Knowle dge Sessio n which ro ughly maps  to (             but  also can  be directl y accessed  through c lasses in  the drools -api jarsR ESTful Seb astian Dec ision Engi ne Request Sample Req uest Messa ge
  125   <SOAP-ENV: Envelope x mlns:SOAP- ENV="http: //www.w3.o rg/2003/05 /soap-enve lope">
  126     <SOAP-EN V:Header/>
  127     <SOAP-EN V:Body>
  128       <evalu ate xmlns= "urn:evalu ation.payl oads.dss.o mg.org">
  129         <int eractionId entifier x mlns="">
  130           <i nteraction Id>STRING< /interacti onId>
  131           <s copingEnti tyId>STRIN G</scoping EntityId>
  132           <s ubmissionT ime>2010-0 6-27T00:00 :00</submi ssionTime>
  133         </in teractionI dentifier>
  134         <eva luationReq uest xmlns ="">
  135           <d ataRequire mentItemDa ta>
  136              <driId>
  137                <contain ingEntityI d scopingE ntityId="o rg.warfari ndosing" b usinessId= "day0dosin gModule" v ersion="1. 0.0">Prima ryDri</con tainingEnt ityId>
  138              </driId>
  139              <data>
  140                <informa tionModelS SId scopin gEntityId= "org.warfa rindosing"  businessI d="dosingi nputmodel"  version=" 1.0"/>
  141                <warfari n>
  142                  <patie nt-attribu tes>
  143                    <no- of-days-on -warfarin> 0</no-of-d ays-on-war farin>
  144                    <age >27</age>
  145                    <tar get-inr>1. 86</target -inr>
  146                    <smo kes>no</sm okes>
  147                    <rac e>other</r ace>
  148                    <ami odarone>ss </amiodaro ne>
  149                    <ind ication>pe </indicati on>
  150                    <mea surements- attributes >
  151                      <m easurement s-attribut e>
  152                         <name>heig ht</name>
  153                         <value>70< /value>
  154                         <unit>cms< /unit>
  155                      </ measuremen ts-attribu te>
  156                      <m easurement s-attribut e>
  157                         <name>weig ht</name>
  158                         <value>35< /value>
  159                         <unit>kgs< /unit>
  160                      </ measuremen ts-attribu te>
  161                    </me asurements -attribute s>
  162                    <vko rc1>ag</vk orc1>
  163                    <cyp 2c9-2>1</c yp2c9-2>
  164                    <cyp 2c9-3>2</c yp2c9-3>
  165                    <cyp 2c9-5>99</ cyp2c9-5>
  166                    <cyp 2c9-6>99</ cyp2c9-6>
  167                    <cyp 4f2>na</cy p4f2>
  168                    <eth nicity>na< /ethnicity >
  169                    <sex >female</s ex>
  170                    <liv er-disease >yes</live r-disease>
  171                    <any -azole>na< /any-azole >
  172                    <ema il>emailad ress@UnivO fDuke.com< /email>
  173                    <sul fa-antibio tics>na</s ulfa-antib iotics>
  174                    <sta tin-reduct ase>atorva statin</st atin-reduc tase>
  175                    <bas eline-inr> 1</baselin e-inr>
  176                  </pati ent-attrib utes>
  177                </warfar in>
  178              </data>
  179           </ dataRequir ementItemD ata>
  180           <k mEvaluatio nRequest>
  181              <kmId scop ingEntityI d="org.war farindosin g" busines sId="day0d osingModul e" version ="1.0.0"/>
  182           </ kmEvaluati onRequest>
  183         </ev aluationRe quest>
  184       </eval uate>
  185     </SOAP-E NV:Body>
  186   </SOAP-ENV :Envelope>
  187   Sample Req uest Messa ge
  188   <knowledge base-reque st>
  189     <globals >
  190       <named -fact>
  191         <id> myglobal</ id>
  192         <fac t class="o rg.drools. server.Exa mpleFact">
  193           <c arType>Saa b</carType >
  194           <c arPrice>42 </carPrice >
  195         </fa ct>
  196       </name d-fact>
  197     </global s>
  198     <inOutFa cts>
  199       <named -fact>
  200         <id> myfact</id >
  201         <fac t class="o rg.drools. server.Exa mpleFact">
  202           <c arType>BMW </carType>
  203           <c arPrice>50 </carPrice >
  204         </fa ct>
  205       </name d-fact>
  206     </inOutF acts>
  207     <inFacts >
  208       <anon- fact>
  209         <fac t class="o rg.drools. server.Exa mpleFact">
  210           <c arType>Aud i</carType >
  211           <c arPrice>55 </carPrice >
  212         </fa ct>
  213       </anon -fact>
  214       <anon- fact>
  215         <fac t class="o rg.drools. server.Exa mpleFact">
  216           <c arType>Mer cedes</car Type>
  217           <c arPrice>65 </carPrice >
  218         </fa ct>
  219       </anon -fact>
  220     </inFact s>
  221   </knowledg ebase-requ est>
  222   Sample Req uest Messa ge
  223   <decisionE ngineServi ceRequest>
  224       <client id ="InfoPath SebastianD ecisionEng ineTesterA pp" passwo rd=" DNS                          "/>
  225     <request _ptEval-Ps msSpecifie d>
  226       <evalT ime>2010-0 5-13</eval Time>
  227       <psmTo EvaluateLi st>
  228         <psm ToEvaluate  id="ccnc2 009_gateke eper_rule_ for_alerts " version= "1.00"/>
  229       </psmT oEvaluateL ist>
  230       <decis ionEngineP atient>
  231         <dem ographicDa ta>
  232           <g ender>F</g ender>
  233           <b irthDate>2 010-04-06< /birthDate >
  234         </de mographicD ata>
  235         <act List>
  236           <p rocedureLi st>                                           
  237              <procedure >                                                   
  238                <code vo c="CPT" vo cVer="2005 " name=""> 92010</cod e>
  239                <time>
  240                  <start ><date>200 4-04-15</d ate></star t>
  241                  <end>< date>2004- 04-15</dat e></end>
  242                </time>
  243              </procedur e>
  244           </ procedureL ist>
  245         </ac tList>
  246       </deci sionEngine Patient>
  247     </reques t_ptEval-P smsSpecifi ed>
  248   </decision EngineServ iceRequest >
  249   Sample Res ponse Mess age
  250   <soap:Enve lope xmlns :soap="htt p://www.w3 .org/2003/ 05/soap-en velope">
  251     <soap:Bo dy>
  252       <ns4:e valuateRes ponse xmln s:ns2="urn :request.e valuation. dss.omg.or g"
  253         xmln s:ns3="urn :common.ds s.omg.org"  xmlns:ns4 ="urn:eval uation.pay loads.dss. omg.org"
  254         xmln s:ns5="urn :exception .common.ds s.omg.org"
  255         xmln s:ns6="urn :response. evaluation .dss.omg.o rg">
  256         <eva luationRes ponse>
  257           <f inalKMEval uationResp onse>
  258              <kmEvaluat ionResultD ata>
  259                <evaluat ionResultI d>
  260                  <conta iningEntit yId versio n="1.0.0"  scopingEnt ityId="org .warfarind osing"
  261                      bu sinessId=" day0dosing Module"/>
  262                </evalua tionResult Id>
  263                <data>
  264                  <warfa rin-respon se>
  265                    <err or-block>
  266                      <e rror>
  267                         <error-cod e>72</erro r-code>
  268                         <error-mes sage>amiod arone has  invalid ra nge. (Vali d Range is
  269                             betwee n 0 and 24 00).</erro r-message>
  270                         <error-fie ld>amiodar one</error -field>
  271                      </ error>
  272                    </er ror-block>
  273                  </warf arin-respo nse>
  274                </data>
  275              </kmEvalua tionResult Data>
  276           </ finalKMEva luationRes ponse>
  277         </ev aluationRe sponse>
  278       </ns4: evaluateRe sponse>
  279     </soap:B ody>
  280   </soap:Env elope>
  281   Sample Res ponse Mess age
  282   <knowledge base-respo nse>
  283     <globals >
  284       <named -fact>
  285         <id> myglobal</ id>
  286         <fac t class="o rg.drools. server.Exa mpleFact">
  287           <c arType>Saa b</carType >
  288           <c arPrice>42 </carPrice >
  289         </fa ct>
  290       </name d-fact>
  291     </global s>
  292     <inOutFa cts>
  293       <named -fact>
  294         <id> myfact</id >
  295         <fac t class="o rg.drools. server.Exa mpleFact">
  296           <c arType>BMW </carType>
  297           <c arPrice>50 </carPrice >
  298         </fa ct>
  299       </name d-fact>
  300     </inOutF acts>
  301   </knowledg ebase-resp onse>Sampl e Response  Message
  302   <psmResult List>
  303     <psmResu lt dataSou rce="Sebas tianDecisi onEngine">
  304       <code  name="CCNC 2009 Gatek eeper Rule  for Alert s" voc="SE B_PSM" voc Ver="1.00" >ccnc2009_ gatekeeper _rule_for_ alerts|1.0 0</code>
  305       <time>
  306         <sta rt>
  307           <d ate>2010-0 5-13T00:00 :00</date>
  308         </st art>
  309         <end >
  310           <d ate>2010-0 5-13T00:00 :00</date>
  311         </en d>
  312       </time >
  313       <execu tionTime>
  314         <sta rt>
  315           <d ate>2010-0 7-08T09:22 :07</date>
  316         </st art>
  317         <end >
  318           <d ate>2010-0 7-08T09:22 :07</date>
  319         </en d>
  320       </exec utionTime>
  321       <resul tCode>001< /resultCod e>
  322       <resul tCodeShort Desc>pt_ha s_no_alert s</resultC odeShortDe sc>
  323       <resul tCodeLongD esc>Patien t is eithe r not elig ible for a ny alerts  due to the ir demogra phics (age  and/or ge nder) or l ack of qua lifying Me dicaid enr ollment, o r the pati ent's medi cal data d oes not me et the req uirements  for a medi cal alert. </resultCo deLongDesc >
  324       <asses sment></as sessment>
  325       <recom mendation> </recommen dation>
  326       <resul tParamList >
  327         <res ultParam n ame="Diabe tesLDLCNex tDueDate"  value="N/A "></result Param>
  328         <res ultParam n ame="Diabe tesEyeExam NextDueDat e" value=" N/A"></res ultParam>
  329         <res ultParam n ame="Diabe tesNephrop athyScrnNe xtDueDate"  value="N/ A"></resul tParam>
  330         <res ultParam n ame="HMAnn ualDentalV isitNextDu eDate" val ue="N/A">< /resultPar am>
  331         <res ultParam n ame="HMDen talFluorid eVarnishNe xtDueDate"  value="N/ A"></resul tParam>
  332         <res ultParam n ame="HMWel lChildVisi tNextDueDa te" value= "N/A"></re sultParam>
  333       </resu ltParamLis t>
  334     </psmRes ult>
  335   </psmResul tList>