IP Library Granted Patent US 10,467,210
Granted Patent B2
US 10,467,210 · App. 15/471,908 · Granted Nov 5, 2019

Interpreting HL7 segment hierarchy dynamically

Inventors: Steven E. Dwire (Lawrenceville, GA); Hong Gao (Alpharetta, GA); Sarika Kandaprabhu (Milton, GA); Michael Godinez (Acworth, GA); Hassan Khan (Alpharetta, GA)
Assignee: Health Catalyst, Inc.
G06F16/22G06F17/2247G06F17/2705G06F17/2785G06F19/3418
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,467,210
App. No.
15/471,908
Granted
Nov 5, 2019
Kind
B2
Abstract

Embodiments of the disclosure provide a method and system of interpreting HL7 segments of an HL7 message. The method includes: electronically obtaining and interpreting a grammar definition to determine a prescribed hierarchy of HL7 segment definitions; creating a resulting segment hierarchy data structure, the resulting segment hierarchy data structure comprising a top segment; performing steps: (a) obtaining an HL7 segment from a plurality of HL7 segments in the HL7 message, (b) determining a parent-child relationship for the HL7 segment, and (c) adding the HL7 segment to the resulting segment hierarchy data structure; and, continuing to perform steps (a), (b), and (c) on remaining HL7 segments of the plurality of HL7 segments until all HL7 segments of the HL7 message have been added to the resulting segment hierarchy data structure.

Claims (84)

1. A method for interpreting a plurality of Health Level-7 (HL7) segments of an HL7 message, the method comprising:

electronically receiving a grammar definition string including a change to an HL7 segment relationship;

deciphering, automatically from the grammar definition string, a hierarchy of HL7 segment definitions;

subsequent to deciphering the hierarchy of HL7 segment definitions, receiving the HL7 message; and

creating a resulting segment hierarchy data structure for the HL7 message based on the deciphered hierarchy of HL7 segment definitions including:

(a) obtaining an HL7 segment from the plurality of HL7 segments in the HL7 message,

(b) determining a parent-child relationship for the HL7 segment based on the deciphered hierarchy of HL7 segment definitions, and

(c) adding the HL7 segment to the resulting segment hierarchy data structure for the HL7 message based on the parent-child relationship of the HL7 segment; and

continuing to perform steps (a), (b), and (c) on remaining HL7 segments of the plurality of HL7 segments until all HL7 segments of the HL7 message have been added to the resulting segment hierarchy data structure for the HL7 message.

2. The method according to claim 1 , wherein electronically receiving the grammar definition string and deciphering the hierarchy of HL7 segment definitions comprises:

receiving the grammar definition string in a grammar file, the grammar file comprising segment names, one or more symbols indicating a required segment, one or more symbols indicating a stepping out of a hierarchy, and one or more symbols indicating a stepping into the hierarchy; and

determining the deciphered hierarchy of HL7 segment definitions, wherein nodes in the deciphered hierarchy of HL7 segment definitions comprise the segment names, and wherein a relationship between the segment names is determined from the one or more symbols indicating the stepping out of the hierarchy and the one or more symbols indicating the stepping into the hierarchy.

3. The method according to claim 2 , wherein:

the required segment is indicated with a symbol ‘*’, the stepping into the hierarchy is indicated with a symbol ‘<’, and the stepping out of the hierarchy is indicated with a symbol ‘>’.

4. The method according to claim 2 , wherein deciphering the hierarchy of HL7 segment definitions comprises:

holding the segment names of the grammar file in a stack data structure; and

tracking a current parent segment in the deciphered hierarchy of HL7 segment definitions using the stack data structure.

5. The method according to claim 1 , further comprising:

receiving the HL7 message;

parsing the HL7 message into an ordered list of HL7 segments to obtain the plurality of HL7 segments;

selecting a first HL7 segment in the ordered list as a top segment; and

wherein obtaining the HL7 segment in the plurality of HL7 segments in the HL7 message comprises selecting a next HL7 segment in the ordered list as the HL7 segment.

6. The method according to claim 5 , wherein determining the parent-child relationship for the HL7 segment comprises:

comparing a segment name of the HL7 segment to segment definitions in the deciphered hierarchy of HL7 segment definitions; and

determining a parent segment for the HL7 segment according to a result of the comparison.

7. The method according to claim 1 , wherein adding the HL7 segment to the resulting segment hierarchy data structure comprises:

marking the HL7 segment as unexpected, wherein an unexpected segment has a segment name not contained in the deciphered hierarchy of HL7 segment definitions; and

adding the HL7 segment as a child segment in the resulting segment hierarchy data structure.

8. The method according to claim 1 , wherein adding the HL7 segment to the resulting segment hierarchy data structure comprises:

creating one or more ghost segments in a parent-child relationship manner, a last ghost segment created being a parent segment of the HL7 segment, wherein a ghost segment is a segment created to match parent-child segment relationships in the deciphered hierarchy of HL7 segment definitions;

adding the one or more ghost segments to the resulting segment hierarchy data structure; and

adding the HL7 segment as a child segment of the last ghost segment in the resulting segment hierarchy data structure.

9. A computing device for interpreting a plurality of Health Level-7 (HL7) segments of an HL7 message, the computing device comprising a processor and a memory with instructions stored thereon, such that when the processor executes the instructions, the computing device is configured to:

electronically receive a grammar definition string including a change to an HL7 segment relationship;

decipher, automatically from the grammar definition string, a hierarchy of HL7 segment definitions;

subsequent to deciphering the hierarchy of HL7 segment definitions, receive the HL7 message; and

create a resulting segment hierarchy data structure for the HL7 message based on the deciphered hierarchy of HL7 segment definitions including:

(a) obtaining an HL7 segment from the plurality of HL7 segments in the HL7 message,

(b) determining a parent-child relationship for the HL7 segment based on the deciphered hierarchy of HL7 segment definitions, and

(c) adding the HL7 segment to the resulting segment hierarchy data structure for the HL7 message based on the parent-child relationship of the HL7 segment; and

continue performing steps (a), (b), and (c) on remaining HL7 segments of the plurality of HL7 segments until all HL7 segments of the HL7 message have been added to the resulting segment hierarchy data structure for the HL7 message.

10. The computing device according to claim 9 , further configured to:

receive the grammar definition string in a grammar file, the grammar file comprising segment names, one or more symbols indicating a required segment, one or more symbols indicating a stepping out of a hierarchy, and one or more symbols indicating a stepping into the hierarchy; and

determine the deciphered hierarchy of HL7 segment definitions, wherein nodes in the deciphered hierarchy of HL7 segment definitions comprise the segment names, and wherein a relationship between the segment names is determined from the one or more symbols indicating the stepping out of the hierarchy and the one or more symbols indicating the stepping into the hierarchy.

11. The computing device according to claim 10 , wherein:

the required segment is indicated with a symbol ‘*’, the stepping into the hierarchy is indicated with a symbol ‘<’, and the stepping out of the hierarchy is indicated with a symbol ‘>’.

12. The computing device according to claim 10 , further configured to:

hold the segment names of the grammar file in a stack data structure; and

track a current parent segment in the deciphered hierarchy of HL7 segment definitions using the stack data structure.

13. The computing device according to claim 9 , further configured to:

receive the HL7 message;

parse the HL7 message into an ordered list of HL7 segments to obtain the plurality of HL7 segments;

select a first HL7 segment in the ordered list as a top segment; and

wherein step (a) comprises selecting a next HL7 segment in the ordered list as the HL7 segment.

14. The computing device according to claim 13 , further configured to:

compare a segment name of the HL7 segment to segment definitions in the deciphered hierarchy of HL7 segment definitions; and

determine a parent segment for the HL7 segment according to a result of the comparison.

15. The computing device according to claim 9 , further configured to:

mark the HL7 segment as unexpected, wherein an unexpected segment has a segment name not contained in the deciphered hierarchy of HL7 segment definitions; and

add the HL7 segment as a child segment in the resulting segment hierarchy data structure.

16. The computing device according to claim 9 , further configured to:

create one or more ghost segments in a parent-child relationship manner, a last ghost segment created being a parent segment of the HL7 segment, wherein a ghost segment is a segment created to match parent-child segment relationships in the deciphered hierarchy of HL7 segment definitions;

add the one or more ghost segments to the resulting segment hierarchy data structure; and

add the HL7 segment as a child segment of the last ghost segment in the resulting segment hierarchy data structure.

17. A non-transitory computer readable medium for interpreting a plurality of Health Level-7 (HL7) segments of an HL7 message, the non-transitory computer readable medium containing program instructions that causes a computer to perform a method comprising:

electronically receiving a grammar definition string including a change to an HL7 segment relationship;

deciphering, automatically from the grammar definition string, a hierarchy of HL7 segment definitions;

subsequent to deciphering the hierarchy of HL7 segment definitions, receiving the HL7 message; and

creating a resulting segment hierarchy data structure for the HL7 message based on the deciphered hierarchy of HL7 segment definitions including:

(a) obtaining an HL7 segment from the plurality of HL7 segments in the HL7 message,

(b) determining a parent-child relationship for the HL7 segment based on the deciphered hierarchy of HL7 segment definitions, and

(c) adding the HL7 segment to the resulting segment hierarchy data structure for the HL7 message based on the parent-child relationship of the HL7 segment; and

continuing to perform steps (a), (b), and (c) on remaining HL7 segments of the plurality of HL7 segments until all HL7 segments of the HL7 message have been added to the resulting segment hierarchy data structure for the HL7 message.

18. The non-transitory computer readable medium according to claim 17 , wherein the computer is further caused to perform the method comprising:

receiving the HL7 message;

parsing the HL7 message into an ordered list of HL7 segments to obtain the plurality of HL7 segments;

selecting a first HL7 segment in the ordered list as a top segment; and

wherein obtaining the HL7 segment in the plurality of HL7 segments in the HL7 message comprises selecting a next HL7 segment in the ordered list as the HL7 segment.

19. The non-transitory computer readable medium according to claim 18 , wherein determining the parent-child relationship for the HL7 segment comprises:

comparing a segment name of the HL7 segment to segment definitions in the deciphered hierarchy of HL7 segment definitions; and

determining a parent segment for the HL7 segment according to a result of the comparison.

20. The non-transitory computer readable medium according to claim 17 , wherein adding the HL7 segment to the resulting segment hierarchy data structure comprises:

marking the HL7 segment as unexpected, wherein an unexpected segment has a segment name not contained in the deciphered hierarchy of HL7 segment definitions; and

adding the HL7 segment as a child segment in the resulting segment hierarchy data structure.

Assignments (6)
SHORT-FORM PATENTS SECURITY AGREEMENT Recorded Jul 23, 2024
From: HEALTH CATALYST, INC.
To: SILVER POINT FINANCE, LLC, AS ADMINISTRATIVE AGENT
Reel/Frame 068505/0244 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 26, 2019
From: MEDICITY LLC
To: HEALTH CATALYST, INC.
Reel/Frame 049004/0613 →
ENTITY OF CONVERSION Recorded Mar 25, 2019
From: MEDICITY, INC.
To: MEDICITY LLC
Reel/Frame 048691/0564 →
ENTITY CONVERSION Recorded Oct 27, 2018
From: MEDICITY, INC.
To: MEDICITY LLC
Reel/Frame 048963/0310 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 11, 2017
From: AETNA INC.
To: MEDICITY, INC.
Reel/Frame 043841/0474 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 30, 2017
From: DWIRE, STEVEN E.; GAO, HONG; KANDAPRABHU, SARIKA; GODINEZ, MICHAEL; KHAN, HASSAN
To: AETNA INC.
Reel/Frame 041797/0738 →
Continuity (2)
Provisional Application 62314051 · Mar 28, 2016
Related Publication 20170277732A1 · Sep 28, 2017