US10922295B2ActiveUtilityA1

Minimize garbage collection in HL7 manipulation

62
Assignee: HEALTH CATALYST INCPriority: Mar 28, 2016Filed: Feb 3, 2020Granted: Feb 16, 2021
Est. expiryMar 28, 2036(~9.7 yrs left)· nominal 20-yr term from priority
G16H 70/20G16H 40/67G06F 16/2228
62
PatentIndex Score
0
Cited by
17
References
17
Claims

Abstract

Disclosed are a system and method for processing HL7 messages. A method includes receiving, an HL7 message; storing the HL7 message in a memory; creating a data structure representation of the stored HL7 message in the memory that stores a start index and an end index of the stored HL7 message, wherein the start index indicates a beginning of the stored HL7 message and the end index indicates an end of the stored HL7 message; hierarchically creating, from the data structure representation of the stored HL7 message, one or more data structure representations in the memory that store at least one start index and at least one end index corresponding to one or more fragments in the stored HL7 message; and, modifying the stored HL7 message according to the at least one start index and a corresponding end index of the fragments in the HL7 message.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A method comprising:
 receiving a Health Level-7 (HL7) message; 
 creating, in a memory, a hierarchical data structure of the HL7 message including one or more fragment objects hierarchically organized, a first fragment object in the hierarchical data structure representing a fragment of the HL7 message and specifying a start index and an end index of the fragment in the HL7 message; 
 creating a second fragment object for the fragment, the second fragment object specifying a start index and an end index of a storage location storing an updated value of the fragment; and 
 modifying the HL7 message by replacing the first fragment object with the second fragment object in a child list of a fragment object representing a parent of the fragment. 
 
     
     
       2. The method of  claim 1  further comprising:
 performing garbage collection on the first fragment object. 
 
     
     
       3. The method of  claim 1  further comprising:
 setting a property indicating that a change to the child list has occurred to true; and 
 rendering the updated value of the fragment based on the property indicating that a change to the child list has occurred being set to true. 
 
     
     
       4. The method of  claim 1 , wherein the HL7 comprises segments, the segments comprising fields, the fields comprising repetitions, the repetitions comprising components, and the components comprising subcomponents. 
     
     
       5. The method of  claim 4 , wherein the hierarchical data structure stores information selected from a group consisting of: (a) information indicating whether a segment is a required segment, (b) information indicating whether the segment is a ghost parent, the ghost parent signifying that the segment was created for a child segment without a parent, and (c) information indicating a list of child segments. 
     
     
       6. The method of  claim 4 , wherein types of fragments in the HL7 message are selected from a group consisting of: (a) a message fragment (b) a segment fragment, (c) a field fragment, (d) a repetition fragment, (e) a component fragment, and (f) a subcomponent fragment. 
     
     
       7. The method of  claim 6 , wherein the HL7 message comprises delimiters for each fragment, wherein a different delimiter is used for each type of fragment in the HL7 message. 
     
     
       8. The method of  claim 1 , wherein the storage location storing the updated value of the fragment is non-contiguous with another fragment of the HL7 message. 
     
     
       9. A system comprising a processor and a memory with instructions stored thereon, such that when the processor executes the instructions, the system is configured to:
 receive a Health Level-7 (HL7) message; 
 create, in the memory, a hierarchical data structure of the HL7 message including one or more fragment objects hierarchically organized, a first fragment object in the hierarchical data structure representing a fragment of the HL7 message and specifying a start index and an end index of the fragment in the HL7 message; 
 create a second fragment object for the fragment, the second fragment object specifying a start index and an end index of a storage location storing an updated value of the fragment; and 
 modify the HL7 message by replacing the first fragment object with the second fragment object in a child list of a fragment object representing a parent of the fragment. 
 
     
     
       10. The system of  claim 9 , wherein, when the processor executes the instructions, the system is configured to:
 perform garbage collection on the first fragment object. 
 
     
     
       11. The system of  claim 9 , wherein, when the processor executes the instructions, the system is configured to:
 set a property indicating that a change to the child list has occurred to true; and 
 render the updated value of the fragment based on the property indicating that a change to the child list has occurred being set to true. 
 
     
     
       12. The system of  claim 9 , wherein the HL7 comprises segments, the segments comprising fields, the fields comprising repetitions, the repetitions comprising components, and the components comprising subcomponents. 
     
     
       13. The system of  claim 12 , wherein the hierarchical data structure stores information selected from a group consisting of: (a) information indicating whether a segment is a required segment, (b) information indicating whether the segment is a ghost parent, the ghost parent signifying that the segment was created for a child segment without a parent, and (c) information indicating a list of child segments. 
     
     
       14. The system of  claim 12 , wherein types of fragments in the HL7 message are selected from a group consisting of: (a) a message fragment (b) a segment fragment, (c) a field fragment, (d) a repetition fragment, (e) a component fragment, and (f) a subcomponent fragment. 
     
     
       15. The system of  claim 14 , wherein the HL7 message comprises delimiters for each fragment, wherein a different delimiter is used for each type of fragment in the HL7 message. 
     
     
       16. The system of  claim 9 , wherein the storage location storing the updated value of the fragment is non-contiguous with another fragment of the HL7 message. 
     
     
       17. A non-transitory computer readable medium containing program instructions that causes a computer to perform a method comprising:
 receiving a HL7 message; 
 creating a hierarchical data structure of the HL7 message including one or more fragment objects hierarchically organized, a first fragment object in the hierarchical data structure representing a fragment of the HL7 message and specifying a start index and an end index of the fragment in the HL7 message; 
 creating a second fragment object for the fragment, the second fragment object specifying a start index and an end index of a storage location storing an updated value of the fragment; and 
 modifying the HL7 message by replacing the first fragment object with the second fragment object in a child list of a fragment object representing a parent of the fragment.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.