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.
| # | 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 |
| Description | Between Files 1 and 2 |
|
|---|---|---|
| Text Blocks | Lines | |
| Unchanged | 2 | 668 |
| Changed | 1 | 2 |
| Inserted | 0 | 0 |
| Removed | 0 | 0 |
| 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 |
No regular expressions were active.
| 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> |
Araxis Merge (but not the data content of this report) is Copyright © 1993-2016 Araxis Ltd (www.araxis.com). All rights reserved.