25
GCPR Near-Term Solution System Design Review John Leslie PRC Health Informatics Systems & Services Chief Architect GCPR Project

GCPR Near-Term Solution System Design Review

  • Upload
    fruma

  • View
    39

  • Download
    0

Embed Size (px)

DESCRIPTION

GCPR Near-Term Solution System Design Review. John Leslie PRC Health Informatics Systems & Services Chief Architect GCPR Project. Purpose/Scope. - PowerPoint PPT Presentation

Citation preview

Page 1: GCPR Near-Term Solution System Design Review

GCPR Near-Term Solution System Design Review

John Leslie

PRC Health Informatics Systems & Services

Chief Architect GCPR Project

Page 2: GCPR Near-Term Solution System Design Review

Purpose/Scope

• The purpose is to pass certain medical records on a select group of Department of Defense (DoD) patients through the GCPR Framework to the Veterans Affairs (VA) to be used by the VA's clinicians who will read the records using the VA's CPRS. This will achieve partial fulfillment of Presidential Review Directive 5 (PRD 5).

• The scope is to provide a bridging network between Agency Systems. The information, which is to be exchanged, is defined in a number of “Partitions” which are defined by the Information Model.

Page 3: GCPR Near-Term Solution System Design Review

Real Scope NTS

• Discharged/Retired only

• Batch messaging HL7 v2.2

• Limited set of information

Page 4: GCPR Near-Term Solution System Design Review

Information View• RIM/RTM

– Initial delivery as GFI December ‘00

– UML

• Clinical Records in “Templates”– Describe structure of data exposed by Framework

– Represented internally as Graphs

– NTS Templates• Laboratory (Chem, Micro, AP, BB)

• Radiology Reports

• Outpatient Medications

• Person Identity – Positively Identify Persons

– Locate Clinical Record

Page 5: GCPR Near-Term Solution System Design Review

GCPR NTS Datatypes

NumericValue

<<Optional>> + units : QualifiedCode+ value : float

(from rimlibrary)

Range

<<Optional>> + units : QualifiedCode+ lower : float+ upper : float

(from rimlibrary)

Ratio

+ numerator : float+ denominator : float

(from rimlibrary)

MediatedCode

+ preMediatedValue : QualifiedCode<<Optional>> + prePreferredText : char+ postMediatedValue : QualifiedCode<<Optional>> + postpreferredtext : char+ mediationFailureType : QualifiedCode<<Optional>> + coding_scheme_id : CodingSchemeId<<Optional>> + version_id : VersionID

DomainValue

+ absent : boolean+ reason : ReasonCode

TimeDelta

+ delta : float+ units : QualifiedCode

(from rimlibrary)PlainText

+ value : String<<Optional>> + language : QualifiedCode

(from rimlibrary)

AuthorityID

+ authority : RegistrationAuthority+ naming_entity : NamingEntity

(from rimlibrary)

Curve

<<Optional>> + xUnits : QualifiedCode<<Optional>> + yUnits : QualifiedCode

(from rimlibrary)

XYPair

+ x : float+ y : float

(from rimlibrary)

+values

Multimedia

+ content_type : String+ other_mime_header_fields : String+ blob : Octet_seq+ total_size : long

(from rimlibrary)

TechnologyInstanceLocator

+ protocol : QualifiedCode+ address : char

(from rimlibrary)

DateTime

+ value : TimeStamp<<Optional>> + relationalOperator : QualifiedCode<<Optional>> + accuracy : NumericValue<<Optional>> + accuracyContext : QualifiedCode<<Optional>> + accuracyUnit : QualifiedCode

(from rimlibrary)

ValueSeq

(from rimlibrary)

TimeSeriesMeasurement

<<Optional>> + value_units : QualifiedCode+ sample_period : TimeDelta+ values : ValueSeq+ total_size : long

(from rimlibrary)

Octet_seq(from rimlibrary)

Short_seq(from rimlibrary)

Long_seq(from rimlibrary)

Float_seq(from rimlibrary)

Double_seq(from rimlibrary)

Boolean(from rimlibrary)

<<Datatype>>

NumericMeasurement

+ value : NumericValue<<Optional>> + relationalOperator : QualifiedCode<<Optional>> + precision : float

(from rimlibrary)

RangeMeasurement

+ value : Range<<Optional>> + lowerRelationalOperator : QualifiedCode<<Optional>> + upperRelationalOperator : QualifiedCode<<Optional>> + logicalOperator : QualifiedCode

(from rimlibrary)

RatioMeasurement

+ value : Ratio<<Optional>> + relationalOperator : QualifiedCode<<Optional>> + precision : float

(from rimlibrary)

QualifiedCode

+ coding_scheme_id : CodingSchemeId+ a_code : ConceptCode

(from rimlibrary)

CodingSchemeId(from rimlibrary)

DomainName(from rimlibrary)

ObservedSubjectID(from rimlibrary)

LocalName(from rimlibrary)

<<Datatype>>

NamingEntity(from rimlibrary)

<<Datatype>>

TimeStamp(from rimlibrary)

<<Datatype>>

PersonID(from rimlibrary)

<<Datatype>>

UniversalResourceIdentifier

(from rimlibrary)

QualifiedName

+ authority_id : AuthorityID+ local_name : LocalName

(from rimlibrary)

ConceptCode(from rimlibrary)

<<Datatype>>

VersionID(from rimlibrary)

Page 6: GCPR Near-Term Solution System Design Review

NTS Lab TemplateGCPR Lab COAS Template ModelVersion 2.03 - 05/15/2001

ChemistryObservation

+ deviation : CodedElement+ isCriticalResult : Boolean+ isSignificantChange : Boolean+ rangeResult : RangeMeasurement+ referenceRange : Range+ textReferenceRange : PlainText

(from LabVersion0203Draft)

NumericObservation

+ numericResult : NumericMeasurement

(from MiscInScopeVersion0104Draft)CodedObservation

+ codedResult : CodedElement

(from MiscInScopeVersion0104Draft)

TextObservation

+ textResult : PlainText<<Optional>> + units : QualifiedCode

(from MiscInScopeVersion0104Draft)

Amendment

+ category : CodedElement+ comments : PlainText

(from MiscInScopeVersion0104Draft)

ClinicalEvent

/+ isAmended : boolean+ reason : CodedElement+ comments : PlainText

(from MiscInScopeVersion0104Draft)

<<Act>>

0..1+amendment0..1

1

+amendingVersion

1

BloodBankObservation

(from LabVersion0203Draft)AnatomicPathologyObs

(from LabVersion0203Draft)ObservationReport

+ ful lText : PlainText

(from LabVersion0203Draft)

ClinicalEventAct

+ codedComments : CodedElement+ dateTime : DateTime+ textComments : PlainText+ id : PlainText

(from MiscInScopeVersion0104Draft)

<<Act>>

Reception<<Act>>

Collection

collectionMethod : CodedElement

<<Act>>

PersonName

+ prefix : PlainText+ givenName : PlainText+ middleName : PlainText+ familyName : PlainText+ suffix : PlainText+ nickName : PlainText+ dateRange : TimeSpan+ motherMaidenName : PlainText

(from PersonVersion0105Draft)

Location

+ locationId : CodedElement

(from MiscInScopeVersion0104Draft)

<<Place>>

0..1+location0..1<<Qualifier>>

LabProfileTemplateVersion0203

- patientId : QualifiedPersonID- templateName : QualifiedName = LabProfi leTemplateVersion0203- origination : QualifiedName- dateTime : T imeStamp

Specimen

+ id : PlainText+ specimenType : CodedElement+ bodySite : CodedElement

(from MiscInScopeVersion0104Draft)

<<Role>>

0..1+reception 0..10..1+collection

0..1

<<Qualifier>>

Workload

+ procedure : CodedElement+ CPTcode : CodedElement+ CPTModifier : PlainText+ CPTStatus : CodedElement+ dateModified : DateTime+ collectionDateTime : DateTime

(from LabVersion0203Draft)

<<Act>>

QualifiedName

+ authority_id : AuthorityID+ local_name : LocalName

(from GCPRDatatypesVersion0200)

PersonIdentity

+ birthDateTime : DateTime

(from PersonVersion0105Draft)

<<EntityID>>

1

+legalName

1

0..n+driverLicense

0..n0..1+socialSecurity

0..1

Entry<<Act>>

Request<<Act>>

Performance<<Act>>

Organization

+ codedID : CodedElement

(from PersonVersion0105Draft)

<<EntityID>>1

+owner

1

<<Qualifier>>

Interpretation<<Act>>

Transcription<<Act>>

ObservationResult

+ sequence : NumericValue

(from MiscInScopeVersion0104Draft)

TestPerformed

+ name : CodedElement+ notes : PlainText+ resultPriority : CodedElement+ resultStatus : CodedElement+ specialInterestComments : PlainText

(from LabVersion0203Draft)

<<Event>>

0..n+performance

0..n

<<Qualifier>>

TestOrdered

+ name : CodedElement+ referralType : CodedElement+ testPriority : CodedElement+ startDate : DateTime+ testStatus : CodedElement+ duration : NumericMeasurement+ interval : PlainText+ effective : TimeSpan

(from LabVersion0203Draft)

<<Order>>

0..1

+testOrdered

0..1

<<Composite>>

0..n

+specimen

0..n<<Composite>>

0..n

+workload

0..n

<<Composite>>

0..n

+entry

0..n

<<Qualifier>>

0..1+request 0..1

<<Qualifier>>

0..1+fi l ling

0..1

<<Qualifier>>

0..n

+testPerformed

0..n

<<Composite>>

Practitioner

+ deaNumber : PlainText

(from PersonVersion0105Draft)

<<Role>>

0..n

+localID

0..n

1

+as_practitioner +player

1

0..1+dataEntryPerson 0..1

<<Qualifier>>

0..1+author

0..1

<<Qualifier>>

0..1

+performer

0..1

<<Qualifier>>

0..1

+assistant

0..1

<<Qualifier>>

0..1

+employer

0..1

<<Qualifier>>

0..1

+performer

0..1

<<Qualifier>>

0..1

+assistant

0..1

<<Qualifier>>

0..1 +dataEntryPerson0..1

<<Qualifier>>

ObservationEvent

+ characteristicObserved : CodedElement+ observationStatus : CodedElement+ sensitivity : CodedElement

(from MiscInScopeVersion0104Draft)

<<Event>>

0..n

+interpretation

0..n

<<Qualifier>>

0..1

+transcription

0..1

<<Qualifier>>

1+observationResult

1

<<Composite>>

0..n

+testResult

0..n

<<Composite>>

Verification<<Act>>

0..n+verification

0..n

<<Qualifier>>

0..1

+verifier

0..1

<<Qualifier>>

0..1+supervisor 0..1<<Qualifier>>

0..1

+verification

0..1

AntibioticSensitivityObs

+ antibioticSensitivity : PlainText+ antibioticName : CodedElement+ interpretation : CodedElement+ serumBactericidalConcentration : RatioMeasurement+ serumInhibitoryConcentration : RatioMeasurement

(from LabVersion0203Draft)

MicrobiologyObservation

+ description : PlainText

(from LabVersion0203Draft)

0..n+antibioticSensitivity0..n

<<Composite>>

Page 7: GCPR Near-Term Solution System Design Review

NTS Rad TemplateGCPR Rad Template Version 0101 - 05/09/2001

RadiologyReport

+ bodySite : CodedElement

(from LabVersion0203Draft)

Amendment

+ category : CodedElement+ comments : PlainText

(from MiscInScopeVersion0104Draft)

ClinicalEvent

/+ isAmended : boolean+ reason : CodedElement+ comments : PlainText

(from MiscInScopeVersion0104Draft)

<<Act>>

0..1+amendment

0..1

1

+amendingVersion

1

NumericObservation

+ numericResult : NumericMeasurement

(from MiscInScopeVersion0104Draft)

CodedObservation

+ codedResult : CodedElement

(from MiscInScopeVersion0104Draft)

TextObservation

+ textResult : PlainText<<Optional>> + units : QualifiedCode

(from MiscInScopeVersion0104Draft)

ClinicalEventAct

+ codedComments : CodedElement+ dateTime : DateTime+ textComments : PlainText+ id : PlainText

(from MiscInScopeVersion0104Draft)

<<Act>>

PersonName

+ prefix : PlainText+ givenName : PlainText+ middleName : PlainText+ familyName : PlainText+ suffix : PlainText+ nickName : PlainText+ dateRange : T imeSpan+ motherMaidenName : PlainText

(from PersonVersion0105Draft)

Location

+ locationId : CodedElement

(from MiscInScopeVersion0104Draft)

<<Place>>

0..1 +location0..1

<<Qualifier>>

QualifiedName

+ authority_id : AuthorityID+ local_name : LocalName

(from GCPRDatatypesVersion0200)

PersonIdentity

+ birthDateTime : DateTime

(from PersonVersion0105Draft)

<<EntityID>>

1

+legalName

1

0..n

+driverLicense

0..n0..1

+socialSecurity

0..1

Organization

+ codedID : CodedElement

(from PersonVersion0105Draft)

<<EntityID>>1

+owner

1

<<Qualifier>>

RadTemplateVersion0101

+ patientId : QualifiedPersonID+ templateName : QualifiedName = RadTemplateVersion0101+ origination : QualifiedName+ dateTime : TimeStamp

<<Root>>

Entry

<<Act>>

Request

<<Act>>

Workload

+ procedure : CodedElement+ CPTcode : CodedElement+ CPTModifier : PlainText+ CPTStatus : CodedElement+ dateModified : DateTime+ collectionDateTime : DateTime

(from LabVersion0203Draft)

<<Act>>

Practitioner

+ deaNumber : PlainText

(from PersonVersion0105Draft)

<<Role>>

0..n

+localID

0..n

1

+as_practitioner +player

1

0..1 +employer0..1<<Qualifier>>

0..1

+dataEntryPerson

0..1

<<Qualifier>>

0..1

+author

0..1

<<Qualifier>>

Performance

<<Act>>

0..1

+performer

0..1

<<Qualifier>>

0..1

+assistant

0..1

<<Qualifier>>

TestOrdered

+ name : CodedElement+ referralType : CodedElement+ testPriority : CodedElement+ startDate : DateTime+ testStatus : CodedElement+ duration : NumericMeasurement+ interval : PlainText+ effective : T imeSpan

(from LabVersion0203Draft)

<<Order>>

0..1+testOrdered 0..1

0..n+entry0..n

<<Qualifier>>

0..1 +request0..1

<<Qualifier>>

0..1+fi l l ing

0..1

<<Qualifier>>

0..n

+workload

0..n

<<Composite>>

Interpretation

<<Act>>

0..1

+performer

0..1

<<Qualifier>>

0..1

+assistant

0..1

<<Qualifier>>

Transcription

<<Act>>

0..1

+dataEntryPerson

0..1

<<Qualifier>>

ObservationResult

+ sequence : NumericValue

(from MiscInScopeVersion0104Draft)

Verification

<<Act>>

0..1

+verifier

0..1

<<Qualifier>>

0..1

+supervisor

0..1

<<Qualifier>>

0..n+verification

0..n

<<Qualifier>>

TestPerformed

+ name : CodedElement+ notes : PlainText+ resultPriority : CodedElement+ resultStatus : CodedElement+ specialInterestComments : PlainText

(from LabVersion0203Draft)

<<Event>>

0..n

+performance

0..n

<<Qualifier>>

0..n

+testPerformed

0..n

<<Composite>> ObservationEvent

+ characteristicObserved : CodedElement+ observationStatus : CodedElement+ sensitivity : CodedElement

(from MiscInScopeVersion0104Draft)

<<Event>>

0..n

+interpretation

0..n

<<Qualifier>>

0..1

+transcription

0..1

<<Qualifier>>

1

+observationResult

1

<<Composite>>

0..1

+verification

0..1

0..n

+testResult

0..n

<<Composite>>

ObservationReport

+ fullText : PlainText

(from LabVersion0203Draft)

Page 8: GCPR Near-Term Solution System Design Review

NTS Meds TemplateGCPR Medication Prof ile COAS Template ModelVersion 2.03 - 05/15/2001

ClinicalEvent

/+ isAmended : boolean+ reason : CodedElement+ comments : PlainText

(from MiscInScopeVersion0104Draft)

<<Act>>

Amendment

+ category : CodedElement+ comments : PlainText

(f rom MiscInScopeVersion0104Draf t)

1

+amendingVersion

1

0..1

+amendment

0..1

ClinicalEventAct

+ codedComments : CodedElement+ dateTime : DateTime+ textComments : PlainText+ id : PlainText

(from MiscInScopeVersion0104Draft)

<<Act>>

CodedElement

+ a_qualif ied_code : Qualif iedCode<<Optional>> + pref erred_text : String

(f rom GCPRDataty pesVersion0200)

PersonName

+ pref ix : PlainText+ giv enName : PlainText+ middleName : PlainText+ f amily Name : PlainText+ suf f ix : PlainText+ nickName : PlainText+ dateRange : TimeSpan+ motherMaidenName : PlainText

(f rom PersonVersion0105Draf t)

Location

+ locationId : CodedElement

(f rom MiscInScopeVersion0104Draf t)

<<Place>>

0..1+location

0..1

<<Qualif ier>>

MedProf ileTemplateVersion0203

+ patientId : Qualif iedPersonID+ templateName : Qualif iedName = MedProf ileTemplateVersion0203+ origination : Qualif iedName+ dateTime : TimeStamp

<<Root>>

Medication

(f rom MedProf ileVersion0203Draf t)

<<entity >>

0..1

+localIdenf if ier

0..1

<<Qualif ier>>

0..1+standardIdentif ier

0..1

<<Qualif ier>>

Qualif iedName

+ authority _id : Authority ID+ local_name : LocalName

(f rom GCPRDataty pesVersion0200)

PersonIdentity

+ birthDateTime : DateTime

(f rom PersonVersion0105Draf t)

<<Entity ID>>

1

+legalName

1

0..n

+driv erLicense

0..n 0..1

+socialSecurity

0..1

Entry

(f rom MiscInScopeVersion0104Draf t)

<<Act>>

Request

(f rom MiscInScopeVersion0104Draf t)

<<Act>>

Organization

+ codedID : CodedElement

(f rom PersonVersion0105Draf t)

<<Entity ID>>

1

+owner

1

<<Qualif ier>>

MedicationOrder

+ id : PlainText+ dispensingInstructions : PlainText+ expireDateTime : DateTime+ f requency : PlainText+ instructionsForUse : PlainText+ intendedDuration : PlainText+ lastRef illDate : DateTime+ numberOf Ref illsAuthorized : NumericValue+ numberOf Ref illsRmng : NumericValue+ orderCategory : CodedElement+ orderedRoute : CodedElement+ orderStatus : CodedElement+ requestedDispenseAmount : NumericValue+ requestedDosageForm : CodedElement+ requestedGiv eAmountMaximum : NumericValue+ requestedGiv eAmountMinimum : NumericValue+ startDateTime : DateTime+ stopDateTime : DateTime

(f rom MedProf ileVersion0203Draf t)

0..1+medicationOrder

0..1

<<Composite>>

1

+orderedDrug

1

<<Composite>>

0..1+entry 0..1 0..1+request 0..1

Practitioner

+ deaNumber : PlainText

(f rom PersonVersion0105Draf t)

<<Role>>

0..n+localID0..n

1

+as_practitioner +play er

1

0..1+dataEntry Person

0..1

<<Qualif ier>>

0..1

+author

0..1

<<Qualif ier>>

0..1+employ er 0..1

<<Qualif ier>>

DispenseEv ent

+ dispenseMode : CodedElement+ prescriptionId : PlainText+ quantity : NumericValue+ wasPatientCounselled : Boolean

(f rom MedProf ileVersion0203Draf t)

0..n

+orderDispense

0..n

<<Composite>>

Perf ormance

(f rom MiscInScopeVersion0104Draf t)

<<Act>>

0..1

+perf ormer

0..1

<<Qualif ier>>

0..n+perf ormance

0..n

Page 9: GCPR Near-Term Solution System Design Review

Graph

• Generic structure based on meta-classes

• ‘Normalized’ representation inside Framework

• Based on RIM

• Each Graph represents records

Page 10: GCPR Near-Term Solution System Design Review

Graph

DomainValue

absent : booleanreason : ReasonC...

Attribute

attrnamevalue : DomainValue

QualifiedName

authority_id : AuthorityIDlocal_name : LocalName

0..n+sensitivity

0..n

Graph

/ graphType : TemplateTypeoperation : Operationmode : ModeoriginatingSystem : QualifiedNamerecordTime : DateTime

Graph()setOperation/Mode()

0..n

+sensitivity

0..n

/Sensitivities

Instance

/ classType

0..n

+attribute

0..n

0..n

+sensitivity

0..n

1

0..n

+root1

0..n

1..n

0..n

+node1..n

0..n

Link

/ roleNAme : String

0..n

+out

0..n

+in

+edge

OR

RIMAttribute

attrnametype

Template

templateType : TemplateType

RIMAssociation

RIMClass

classType

0..n0..n

1

+root

1

RIMValueType

RIMAssociationEnd

roleNamemultriplicitynavigable

2..22..2

0..n

1

0..n

1

+edgeOR

Page 11: GCPR Near-Term Solution System Design Review

GCPR NTS ArchitectureGCPR Near-term Solution Architecture

DOD Domain

VA Domain

Distributed : OC

VA Cache : Cache

VA PersonResolver : HPR

VA FrameworkCOAS : FC

A Server : VistA

B Server : VistA

VA CacheWrapper : CW

CrossDomain

X Person Resolver : XPR

X CacheWrapper : CW

X Cache : Cache

Consolidator : CHCS

Sysytem 1 : CHCS

System 2 : CHCS

System 3 : CHCS

X Cross Index : XPI

DoD Person Resolver : HPR

DoD Cache Wrapper : CW

DoD Cache : Cache

DoD HPI : MPI

DoD ftp Server : IE

This is a VistA server with COAS gateway and Remote Data Views capabili ties

CHCS Inbound Processor : Adapter

Austin VA : MPI

non-captive MPI behavior

VA Primary One : VistA

VA Vista Facil ity : OC

X Distributed : OC

VA NC PIDS : FP

Page 12: GCPR Near-Term Solution System Design Review

NTS HL7 Add/Update New Patient ADT (A28, A30, A31)GCPR Near-term Architecture

DOD Domain

VA Domain

VA PersonResolv er : HPRAustin VA :

MPI

VA Host : VistA

VA FrameworkCOAS : FC

A Serv er : VistA

B Serv er : VistA VA CacheWrapper :

CW

CrossDomain

X Person Resolv er : XPR

Consolidator : CHCS

Sysy tem 1 : CHCS

X Cross Index : XPI

DoD Person Resolv er : HPR

DoD Cache Wrapper : CW

DoD Cache : Cache

DoD HPI : MPI

DoD f tp Serv er : IE

This is a VistA serv er with COAS gateway and Remote Data Views capabilities

CHCS ADT Processor : PA

may return a graph if getNext is called

since getGraphs() was called it is probable that y ou will want to see the graph in the collection so a getNext would be called

VA Cache : Cache

this is the trigger to update the CMOR will. It will be inn a separate thread.

f ind_candidates is really a select on a psuedo MPI database. It should be programmed to f ind exact match only . No f uzzy matches or weighting will be supported with psuedo MPI. Inv estigate using VA algorithm

12: f ind_candidates( )

13: candidate

19: add patient

20: ok

21: update CMOR

22: ok

23: update TFL

24: ok

9: f ind_candidates

10: not f ound15: f ind_or_register_ids

16: id seq

11: getGraphs()

14: graph

2: f tp HL7 f ile ADT & ORU

1: f tp HL7 f ile

8: addGraphs(SET)

17: graph

4: f ind_candidates

5: not f ound

6: register_new_ids

7: id seq

3: addGraphs(SET)18: retrun

Page 13: GCPR Near-Term Solution System Design Review

NTS VA Add/Update New PatientGCPR Near-term Archtecture

DOD Domain

VA Domain

VA Observ ationCollector : OC VA Cache :

Cache

VA PersonResolv er : HPR

VA Primary One : VistA

VA FrameworkCOAS : FC

A Serv er : VistA

B Serv er : VistA

VA CacheWrapper : CW

CrossDomain

X Person Resolv er : XPR

X CacheWrapper : CW

Consolidator : CHCS

Sy sy tem 1 : CHCS

Sy stem 2 : CHCS

Sy stem 3 : CHCS

X Cross Index : XPI

DoD Person Resolv er : HPR

DoD Cache Wrapper : CW

DoD Cache : Cache

DoD HPI : MPI

DoD f tp Serv er : IE

This is a VistA serv er with COAS gateway and Remote Data Views capabilities

CHCS Inbound Processor : Adapter

Austin VA : MPI

non-captiv e MPI behav ior beginning TBD

X Cache : Cache

a null string f or the id will be returned if not added at the XPI. This would indicate the person was not matched.

VA NC PIDS : FP

this wrksf or NC and does not f ollow the FP pattern

VA Distributed : OC

X Distributed : OC

4: addGraph(SET)

13: graph

15: add patient

16: ok

1: add new patient (A28?)

2: retrun ICN (A31)

17: update CMOR

18: ok

19: update TFL

20: ok

5: f ind_candidates

6: not f ound11: f ind_or_register_ids

12: id seq

7: getGraphs()

10: graph

8: f ind_candidates( )

9: candidate

3: f ind_or_register_ids()

14: id seq

Page 14: GCPR Near-Term Solution System Design Review

NTS HL7 Add/Update New Patient Records ORUGCPR Near-term Architecture

DOD Domain

VA Domain

VA PersonResolver : HPR

Austin VA : MPI

VA Primary Host : VistA

VA FrameworkCOAS : FCA Server :

VistA

B Server : VistA

VA CacheWrapper : CW

CrossDomain

X Person Resolver : XPR

Consolidator : CHCS

Sysytem 1 : CHCS

X Cross Index : XPI

DoD Person Resolver : HPR

DoD Cache Wrapper : CW

DoD Cache : Cache

DoD HPI : MPI

DoD ftp Server : IE

This is a VistA server with COAS gateway and Remote Data Views capabilities

CHCS ORU Processor : RA

may return a graph if getNext is called

Distributed : OC

X Dist : CW

X Distributed : OC

12: find_candidates( )

13: candidate

9: find_candidates

10: not found15: find_or_register_ids

16: id seq

11: addGraphs(GET)

14: graph

2: ftp HL7 file ADT & ORU

1: ftp HL7 file

8: addGraphs(SET)

17: graph

4: find_candidates

5: not found

6: register_new_ids

7: id seq

20: insert21: done

3: addGraphs(SET)18: graph

19: addGraphs(SET)

22: retrun

Page 15: GCPR Near-Term Solution System Design Review

NTS HL7 Add/Update Existing Patient Records ORUGCPR Near-term Architecture

DOD Domain

VA Domain

VA ObservationCollector : OC

VA Cache : Cache

VA PersonResolver : HPRAustin VA :

MPI

VA FrameworkCOAS : FC

A Server : VistAB Server :

VistA

VA CacheWrapper : CW

CrossDomain

X Person Resolver : XPR

X CacheWrapper : CW

X Cache : Cache

Consolidator : CHCS

Sysytem 1 : CHCS

System 2 : CHCS

System 3 : CHCS

X Cross Index : XPI

DoD Person Resolver : HPR

DoD Cache Wrapper : CW

DoD Cache : Cache

DoD HPI : MPI

VA Person Adapter : PA

DoD ftp Server : IE

VA Interface Engine : IE

This is a VistA server with COAS gateway and Remote Data Views capabilities

CHCS1 ORU Processor : RA

no change to traits

getNext retruns graph; the cleanest way to do this would be to handle the ID demographics then deal with records like 2 separate steps or messages

VA Host : VistA

2: ftp HL7 file ADT & ORU

1: ftp HL7 file

4: find_candidates( )

5: candidate

8: insert 9: done

3: addGraphs(SET) 6: graph w/DoD Domain Id

7: addGraphs(SET)10: retrun

Page 16: GCPR Near-Term Solution System Design Review

NTS Deliver Patient RecordsGCPR Near-term Architecture

DOD Domain

VA Domain

VA Observ ationCollector : OC

VA Cache : Cache

VA PersonResolv er : HPR

Austin VA : MPI

VA serv er Nashv ille : VistA

VA FrameworkCOAS : FC

VA Primary One : VistA

B Serv er : VistA

VA CacheWrapper : CW

CrossDomain

X Person Resolv er : XPR

X CacheWrapper : CW

X Cache : Cache

CHCS Records Adapter : Adapter

Consolidator : CHCS

Sy sy tem 1 : CHCS

Sy stem 2 : CHCS

Sy stem 3 : CHCS

X Cross Index : XPI

DoD Person Resolv er : HPR

DoD Cache Wrapper : CW

DoD Cache : Cache

DoD HPI : MPI

DoD f tp Serv er : IE

VA Framework PIDS : FP

uses ICN as who which is the id used f or the Cache

DistributedCache : OC

must indicate get_corresponding_ids

X Distributed Cache : OC

CW recognizes that he is up to date since ev ery thing is a realtime push. Whether or not we look in th MPI to f igure this out is TBD.

only called if need to f ind the correlated id (i.e the id used in the Cache)

4: get_corresponding_ids( )

5: id seq

2: getSelected

31: graphs

1: get_observ ations_by ( )

32: observ ations

3: getSelected(mtf ID)

6: graph

9: retriev e(ICN)

26: addGraphs(SET)

7: select( )

8: not f ound

27: insert28: done

29: select

30: rows

12: get_corresponding_ids

13: id seq

11: getSelected14: graph

15: retriev e(DoDId)

24: addGraphs(SET)

18: get_corresponding_ids

19: id seq

21: select( )

22: rows

17: getSelected

20: graph

10: getSelected(ICN)

25: graphs

16: getSelected(DoDId)

23: graphs

Page 17: GCPR Near-Term Solution System Design Review

transformer

• Adapters/Connectors– Connectors provide support protocol (ie ftp, IIOP)

– Adapters components translate from one representation to another (ie HL7 to RIM)

• Graphs/GraphCollections/GraphCollectionMgr– ‘Generic’ internal representation of RIM

– Independent of underlying persistence

– IGraphcollection (CacheGraphCollection, PersonGraphCollection)

Page 18: GCPR Near-Term Solution System Design Review

Normalized RIM, Reference Terminology and Privacy Controls (ADI)

HL7 2.3Adapter

HL7 v3XML

(future)

PIDSAdapter

COASAdapter

SQLAdapter

HL7 v2.2

Adapter

IIOP ODBC CHCSftp

IIOP/CORBA

MLLP/HL7

IIOP/CORBA

HTTP(future)

MPICOASServer

DoDVA

IHS

Connectors

Adapters

Transformer

COASAdapter

IIOP

PIDSAdapter

Page 19: GCPR Near-Term Solution System Design Review

Graph

DomainValue

absent : booleanreason : ReasonC...

Attribute

attrnamevalue : DomainValue

QualifiedName

authority_id : AuthorityIDlocal_name : LocalName

0..n+sensitivity

0..n

Graph

/ graphType : TemplateTypeoperation : Operationmode : ModeoriginatingSystem : QualifiedNamerecordTime : DateTime

Graph()setOperation/Mode()

0..n

+sensitivity

0..n

/Sensitivities

Instance

/ classType

0..n

+attribute

0..n

0..n

+sensitivity

0..n

1

0..n

+root1

0..n

1..n

0..n

+node1..n

0..n

Link

/ roleNAme : String

0..n

+out

0..n

+in

+edge

OR

RIMAttribute

attrnametype

Template

templateType : TemplateType

RIMAssociation

RIMClass

classType

0..n0..n

1

+root

1

RIMValueType

RIMAssociationEnd

roleNamemultriplicitynavigable

2..22..2

0..n

1

0..n

1

+edgeOR

Page 20: GCPR Near-Term Solution System Design Review

GraphCollectionsIGraphCollection

+ getSelected(criteria : Selector, attrCriteria : AttributeSelector)+ getNext() : Graph+ getNext(n : int) : Graph[]+ addGraphs(graphs : Graph[]) : boolean+ getGraph(graph : Graph) : Graph+ mergeGraphs(oldGraph : Graph, preferedGraph : Graph) : boolean+ commit()+ rollback()+ done()

GraphCollection

- nodeType : NodeType

GraphCollection()

CacheGraphCollection(from cachewrapper)

DistClinicalGraphCollection(from observationcollector)

PersonGraphCollection

- nodeName : String- candidateBuffer : Vector

(from personresolver)

PidsPersonGraphCollection

- orb : ORB

(from personresolver)

SqlPersonGraphCollection

- connection : Connection

(from personresolver)

GraphCollectionMgr

+ getInstance()+ registerNameService()+ findGraphCollection()+ createGraphCollection()

<<Singleton>>

Page 21: GCPR Near-Term Solution System Design Review

GraphCollectionMgr (local)

Client Local : GraphCol lectionMgr

: CacheGraphCol lection

: PidsPersonGraphCollection

: SqlPersonGraphCol lection

createGraphCollection(sessionID, subCollection, srcNode, targetNode, autocommit)

findGraphCollection(nodename)

return IGraphCollection

CacheGraphCol lection(Selector, GraphType, hostNode)

new PidsPersonGraphCollection(hostNode, cal lingNode, autoCommit)

new SqlPersonGraphCol lection(hostNode, call ingNode, autoCommit)

if CLINICAL

if PERSON

depends on Domain Type

Page 22: GCPR Near-Term Solution System Design Review

GraphCollectionMgr (remote)

Client Local Domain : GraphCol lectionMgr

: GraphCol lectionProxyNameService Remote Domain : GraphCol lectionMgr

createGraphCollection(sessionID, subCollection, srcNode, targetNode, autocommit)

findGraphCollection(nodename)

new GraphCollectionProxy

query

bind

createGraphCollection(sessionID, subCollection, srcNode, targetNode, autocommit)

retrun GraphCol lectionProxy

return IGraphCollection

Page 23: GCPR Near-Term Solution System Design Review

Current Status

• Loading files

• Beta testing– San Diego

– Alaska

– El Paso

– Washington DC

• Support/minor enhancements

Page 24: GCPR Near-Term Solution System Design Review

Future

• More robust set of info– Adverse Reactions– Discharge Summaries– Etc...

Page 25: GCPR Near-Term Solution System Design Review

Questions?