The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new functionality for our service, new
products and services, our new business model, our past operating losses, possible fluctuations in our operating results and rate of growth, interruptions or delays in
our Web hosting, breach of our security measures, the outcome of any litigation, risks associated with completed and any possible mergers and acquisitions, the
immature market in which we operate, our relatively limited operating history, our ability to expand, retain, and motivate our employees and manage our growth, new
releases of our service and successful customer deployment, our limited history reselling non-salesforce.com products, and utilization and selling to larger enterprise
customers. Further information on potential factors that could affect the financial results of salesforce.com, inc. is included in our annual report on Form 10-K for the
most recent fiscal year and in our quarterly report on Form 10-Q for the most recent fiscal quarter. These documents and others containing important disclosures are
available on the SEC Filings section of the Investor Information section of our Web site.
Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently available and may not be
delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features that are currently available.
Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements.
Speaker Background
Kevin Collins, Senior Principal Program Architect, Salesforce HLS
Over 30 years experience developing and delivering software products to the global provider
market
• Electronic Medical Records (MU Certified)
• Medical Device Manufacturing (PMA, 501K)
• PACS, RIS
• Revenue Lifecycle Management
• Cardiology Information Systems
• Digital Pathology Solutions
• Health Information Exchanges (HIEs)
• Salesforce Health Cloud
Salesforce Health Cloud Integration Paths
Health Cloud is a Managed Package on top of Service Cloud
HL7 v2:
• Event-based messaging, pipe-and-hat (|^)-delimited messages exchanged over sockets.
• Transaction-oriented.
Truly vendor-neutral:
• Query mechanisms are the same from vendor to vendor
• Responses to the same queries are identical from vendor to vendor
HL7 v2
The dominant data exchange methodology in healthcare for decades
Most healthcare institutions will already have one or more commercial or open source HL7
Integration Engines
• CorepointHealth
• InterfaceWare Iguana
• Orion Health Rhapsody
• Mirth
All major HL7 Engines can transform standard HL7 messages into JSON (JavaScript Object
Notation) and pass them on to REST or SOAP endpoints.
What can consume JSON objects via REST or SOAP endpoints? Health Cloud!
EMR to Salesforce Health Cloud Integration using HL7
Salesforce
HL7 Engine Health
EMR HL7 Message
• Receives HL7 REST API call Cloud
• Transforms into JSON with JSON
ADT, ORM, ORU,
• Calls HC REST API payload
MDM, DFT, etc.
So, this HL7 ADT^A01 (patient admit) message …
MSH|^~\\&|HNAM_PM|HNA500|AIG||20170828030808||ADT^A01|Q145009810T140865109X782401||2.3||||||8859/1
EVN|A01|20170828025400|||SATHEK01^Sathesh Mohanraj^Keerthana^^^^^^^PERSONNEL|20170828025400
PID|1|35^^^MSH_MRN^MRN|35^^^MSH_MRN^MRN^FROMCERNER~975985^^^MSH_EMPI^CMRN^MTSN|1123690^0^^IID^DO
NOR
ID^UPLOAD~Q35^0^^MSQ_MRN^KMRN|Xtkncnj^Znslgfn^^^^^CURRENT||19140422|F|Xtkncnj^Znslgfn^^^^^MAIDEN|BQ|2253
Third Ave^Apt
#4^Unknown^NY^99999^USA^HOME^^060||9868985986^HOME^CD:13951662||ENGLISH|U|UNK|O50007181^^^MSH_FIN_NB
R^FIN NBR||||20|||0
PV1|1|I|N09C^9220^P^MSH^^BED(S)^GM|EL|||12391^Btig^Dnssw^A^^MS^^^MSH_DICT_NBR~1508849019^Btig^Dnssw^A^^MS
^^^NPI_POOL|||MED||||F|||12391^Btig^Dnssw^A^^MS^^^MSH_DICT_NBR~1508849019^Btig^Dnssw^A^^MS^^^NPI_POOL|IP|5
0007287^0^^^VISIT ID|HCN|||||||||||||||||||MSH||A|||20170828025400|||||||A
PV2||PS|^Hand Injury|||||||1|||Self-Referral|||||||||STANDARD|^^589743
IN2|||||||||||||||||||||||||123456987b||||||||||||||||||||||||||||||||||||123456987b||(986)898-5986^HOME|(000)000-0000||||||||Self
… becomes this JSON object
{
“msh” : { “msh_3” : ”HNAM_PM”, “msh_4” : “HNA500”, “msh_7” : “20170828030808”,
“msh_9” : “ADT^A01”},
“evn” : { “evn_1”: “A01”, “evn_2” : “20170828025400” … },
“pid” : { “pid_2” : { ”cx_1” : “35”, “cx_4” : “MSH_MRN”, “cx_5” : “MRN” ... }, “nk1” : {... },
”pv1” : { “pv1_2” : “I”, “pv1_3” : “N09C^9220^P^MSH^^BED(S)^GM”, ... }
“in1” : { ... }
}
HL7 ADT^A01 Components
How does an HL7 message align with Health Cloud data objects?
PID: Patient Information (Account, Contact, EhrPatient)
NK1: Next of Kin / Associated Parties (Contact, Account-Contact Relationships)
PV1: Visit Info (EhrEncounter, EhrEncounterParticipant, EhrPractitioner)
OBX: Observation/Result (EhrObservations, EhrImmunizationReaction)
AL1: Patient Allergies (EhrAllergyIntolerances)
DG1: Diagnosis (EhrCondition)
PR1: Procedures (EhrProcedure, EhrProcedurePerformer, EhrImmunization)
IN1: Insurance (currently requires custom objects)
GT1: Guarantor Info (Contact, Account-Contact Relationships)
Solution: 2 Approaches
Make the HL7 engine or ESB do all the work
• Extract the patient information, transform it into JSON, and call the SOAP API for the Contact object
• Do the same for EhrPatient
• Call the Case API to build a Care Plan, call the APIs for all of the clinical and encounter data.
Ingredients:
• HL7 Engine capable of transforming HL7 messages into specific JSON formats and calling REST-based
API in Salesforce
• Custom Apex class to accept JSON from HL7 Engine
• Custom Apex classes that are specific to each Message Type.
• The job of a Message Type parser would be to decide which segments to process and which segment parsers to
invoke for that processing.
• Custom Apex classes that are specific to each Message Segment
• The job of a Message Segment parser is to extract the data from the Apex class and insert it into the appropriate
storage location in the Health Cloud data model.
HL7 Processing in Apex: A High-Level Design
Consuming industry-standard HL7 transformations with Health Cloud
JSON Transformation:
• Develop a straightforward JSON structure for each Message Type that the HL7 Engine can reliably
create.
{ “msh” : { “msh_1” : …, “msh_2” : ..., “msh_3” : ...}, “evn” : { “evn_1” : ..., “evn_2” : ... }, ... }
• Create an Apex class named “msh” so that the JSON can be de-serialized to the matching class
structure.
• Use the class structure to examine the 9th sequence of the MSH segment. This contains the Message
Type.
• Use the message type to instantiate the appropriate handler/parser class specific to that message
type.
HL7 Processing in Apex: A High-Level Design
Consuming industry-standard HL7 transformations with Health Cloud
Msh Class:
Public class Msh {
Public String msh_3; // Sending Application
Public String msh_4; // Sending Facility
Public string msh_9; // Message Type
}
De-serialize:
Msh msgMsh= (Msh) JSON.deserialize(jsonString, Msh.class);
De-serializing the JSON into this class will give you the 3 items you need to choose which
Message Type parser to invoke:
• Sending Application à Msh.msh_3
• Sending Facility à Msh.msh_4
• Message Type à Msh.msh_9
HL7 Processing in Apex: A High-Level Design
Consuming industry-standard HL7 transformations with Health Cloud
Message Processing:
• The HL7 standard outlines each of the Message Segments (PID, PV1, etc.) that can be associated in
each Message Type.
• Develop Apex classes specific to parsing each kind of Message Segment.
• Use the Message Type handler/parser to invoke each of the segment-specific parsers.
• Segment-specific parsers will contain the details of mapping individual fields from the HL7 message to
specific objects and fields in the Health Cloud data model.
HL7 Processing in Apex: A High-Level Design
Consuming industry-standard HL7 transformations with Health Cloud
HL7 Processing in Apex: A High-Level Design
Consuming industry-standard HL7 transformations with Health Cloud
MON, NOV 6
INTERCONTINENTAL 4TH FLOOR
10:30am, 12:00pm Enterprise Architect Bar
TUES, NOV 7
INTERCONTINENTAL 4TH FLOOR
Network and See Live Demos 10:30am Health Cloud on FHIR: Leveraging Explore the UCSF Experience
the New Interoperability Standard
11:00am, 2:00pm Enterprise Architect Bar
MARRIOTT MARQUIS
1:00pm Keynote: Healthcare & Life Sciences
2:30pm Health Cloud for Healthcare