Inventory
The Inventory data model is used to track surgical supplies (e.g., scalpels, bandages) between systems.
The Update event type is an administrative message that synchronizes item types, counts, locations, and prices across systems. Generally this data comes from the Enterprise Resource Planner (ERP) into the EHR system, including the types of items stocked and the specific locations in the hospital they might be found.
The Deplete event type documents the usage of supply (e.g., during a surgical procedure) from the EHR system to the ERP. Deplete contains an optional Patient object for use in charging, or it can be used without the Patient object to inform another system that supplies need to be reordered.
The Inventory data model is most commonly used when connecting to inpatient EHR systems with robust interfacing capabilities and surgical specialty modules. Supplies are also often used in areas that function similarly to surgery (e.g., invasive cardiology, angiography). Typically ERP systems make Update data available via an HL7v2 MFN format or proprietary API. Deplete data is most commonly made available via an HL7v2 OMS or DFT format or proprietary API.
The Inventory data model is similar to the Financial data model in that they both contain administrative details with financial impact. But Inventory focuses specifically on item usage and costs while Financial focuses on patient charges, which can include inventory-related charges.
The Update event is for reading and writing supply metadata, such as how many are on hand, whether or not it is chargeable, and where the supply is located. This model will be exchanged with inventory management systems, the EHR, and other system who are responsible for consuming supplies. Update events occur when the database updates are made in the inventory management system.
Fields
Meta
Meta.DataModel
String
ReliableRequiredInventory
Meta.EventType
String
ReliableRequiredUpdate
Meta.EventDateTime
DateTime
ReliableDisplays the UTC date and time that an outgoing request is delivered or an incoming request is received.
ISO 8601 Format
Meta.Test
Boolean
ReliableIndicates whether the request is a test or not.
Meta.Source
String
ReliableContains the information for the system initiating the message, including the source ID and name.
Included in messages from Redox
Meta.Source.ID
String
ReliableIdentifies the system initiating the message. If you have multiple OAuth API keys per environment type, this value is required. If you have only one OAuth API key per environment type, or you're using legacy API keys, this value is optional.
UUID
Meta.Source.Name
String
ReliableDisplays the name of the system initiating the message.
Meta.Destinations[]
Array of Objects
ReliableContains the information for the endpoint(s) receiving the request. A request must contain at least one destination, but asynchronous requests can have more than one destination. Synchronous requests like queries can only support one destination.
Required when sending data to Redox.
Meta.Destinations[].ID
String
ReliableIdentifies the endpoint that the request is directed to.
UUID
Meta.Destinations[].Name
String
ReliableDisplays the name of the endpoint that the request is directed to.
Meta.Logs[]
Array of Objects
ReliableContains the log identifier(s) for the request.
Meta.Logs[].ID
String
ReliableIdentifies the request log(s) that correspond to this request. You can use this value to locate the relevant log in the Redox dashboard for support and reference.
UUID
Meta.Logs[].AttemptID
String
ReliableIdentifies the request log attempt value, which is useful when retries are possible.
UUID
Meta.FacilityCode
String
PossibleCode for the facility related to the message.
Only use this field if a health system indicates you should. The code is specific to the health system's EHR and might not be unique across health systems. In general, the facility fields within the data models (e.g. OrderingFacility) are more reliable and informative.
Items
Items[].Identifiers[]
Array of Object
Reliable
Items[].Identifiers[].ID
String
ReliableRequiredThe identifier list for an item can contain multiple aliases, including the application ID for the item, an external ordering system's ID, or the an ID that the health system uses to identify the item across systems.
Items[].Identifiers[].IDType
String
ReliableRequiredThe type of identifier in Item.Identifiers[].ID.
This is usually a string that roughly corresponds to which application assigned the ID. Example: Redox, Lawson, RedoxHealthSystem
Items[].Description
String
ProbableA free text description of the item name.
Used to show a human-readable version of the item, or for lookup..
Items[].Quantity
Numeric
ProbableThe quantity of the item being referred to. For update messages, this usually refers to the quantity on hand, for requisition messages, this is the number used/ordered.
Items[].Type
String
ProbableWhat kind of item this is (Equipment, Supply, Implant, Medication).
This is used primary for filtering.
Items[].Units
String
ProbableThe unit of measure for the item. Examples: Box, Pack, Syringe, etc.
Different products are ordered/used in different quantities. For example, you may buy a case of gauze, and those are used as packages.
Items[].Procedure.Code
String
ProbableA procedure attached to the item. This is usually a HCPCS code that is used to bill for the item.
Items[].Procedure.Codeset
String
ProbableCodeset of the procedure.
Items[].Procedure.Modifier
String
ProbableA modifier (if applicable), usually used in conjunction with the HCPCS code.
Items[].Notes
String
ProbableFree text comments about the item.
Items[].Vendor
Object
ProbableInformation about the specific vendor that the item is from.
Items[].Vendor.ID
String
ProbableThe ID for the vendor that would be used in automated purchase system.
Items[].Vendor.Name
String
ProbableA name/description of the vendor.
Items[].Vendor.CatalogNumber
String
ProbableThe Vendor's ID for the item. This will be used in any kind of automated purchase system.
Items[].Status
String
ProbableStatus indicates whether the item is active, discontinued, or not stocked.
Items[].IsChargeable
Boolean
ProbableIndicate whether or not this item can be charged for, usually used in conjunction with Items[].Procedure.
Items[].ContainsLatex
Boolean
ProbableA flag indicating whether or not the product contains latex.
Items[].Price
Numeric
ProbableA field for price of the product. This is typically used for reporting purposes.
Items[].Location
Object
ProbableWhere the item is physically stored in the healthcare facility.
Items[].Location.Facility
String
ProbableExample: Community Hospital
Items[].Location.Department
String
ProbableDepartment where the item is physically stored.
Items[].Location.ID
String
ProbableAn identifier for the location of the product - this can correspond to one of multiple store rooms in a particular facility, or the facility itself.
Items[].Location.Bin
String
ProbableAn further identifier for where the item is located.
{
"Meta": {
"DataModel": "Inventory",
"EventType": "Update",
"EventDateTime": "2023-05-23T13:49:48.036Z",
"Test": true,
"Source": {
"ID": "7ce6f387-c33c-417d-8682-81e83628cbd9",
"Name": "Redox Dev Tools"
},
"Destinations": [
{
"ID": "af394f14-b34a-464f-8d24-895f370af4c9",
"Name": "Redox EMR"
}
],
"Logs": [
{
"ID": "d9f5d293-7110-461e-a875-3beb089e79f3",
"AttemptID": "925d1617-2fe0-468c-a14c-f8c04b572c54"
}
],
"FacilityCode": null
},
"Items": [
{
"Identifiers": [
{
"ID": "22246069",
"IDType": "SUPPLY"
}
],
"Description": "Gauze Sponges",
"Quantity": 4,
"Type": "Supply",
"Units": "Bandages",
"Procedure": {
"Code": null,
"Codeset": null,
"Modifier": null
},
"Notes": "Case of 2000",
"Vendor": {
"ID": "FSH",
"Name": "FISHER SCIENTIFIC",
"CatalogNumber": "22-246069"
},
"Status": "Active",
"IsChargeable": false,
"ContainsLatex": false,
"Price": 118.9,
"Location": {
"Facility": null,
"Department": null,
"ID": "Central",
"Bin": "42"
}
}
]
}
A Deplete event indicates that a supply has somehow been used. The optional Patient object provides a context for charging based on supply usage. Without the Patient object, the Deplete event can be used to document normal supply usage, and trigger automatic creation of a re-order (requisition).
Fields
Meta
Meta.DataModel
String
ReliableRequiredInventory
Meta.EventType
String
ReliableRequiredDeplete
Meta.EventDateTime
DateTime
ReliableDisplays the UTC date and time that an outgoing request is delivered or an incoming request is received.
ISO 8601 Format
Meta.Test
Boolean
ReliableIndicates whether the request is a test or not.
Meta.Source
String
ReliableContains the information for the system initiating the message, including the source ID and name.
Included in messages from Redox
Meta.Source.ID
String
ReliableIdentifies the system initiating the message. If you have multiple OAuth API keys per environment type, this value is required. If you have only one OAuth API key per environment type, or you're using legacy API keys, this value is optional.
UUID
Meta.Source.Name
String
ReliableDisplays the name of the system initiating the message.
Meta.Destinations[]
Array of Objects
ReliableContains the information for the endpoint(s) receiving the request. A request must contain at least one destination, but asynchronous requests can have more than one destination. Synchronous requests like queries can only support one destination.
Required when sending data to Redox.
Meta.Destinations[].ID
String
ReliableIdentifies the endpoint that the request is directed to.
UUID
Meta.Destinations[].Name
String
ReliableDisplays the name of the endpoint that the request is directed to.
Meta.Logs[]
Array of Objects
ReliableContains the log identifier(s) for the request.
Meta.Logs[].ID
String
ReliableIdentifies the request log(s) that correspond to this request. You can use this value to locate the relevant log in the Redox dashboard for support and reference.
UUID
Meta.Logs[].AttemptID
String
ReliableIdentifies the request log attempt value, which is useful when retries are possible.
UUID
Meta.FacilityCode
String
PossibleCode for the facility related to the message.
Only use this field if a health system indicates you should. The code is specific to the health system's EHR and might not be unique across health systems. In general, the facility fields within the data models (e.g. OrderingFacility) are more reliable and informative.
Patient
Patient.Identifiers[]
Array of Objects
ReliableList of IDs and ID types that identify the patient
Patient.Identifiers[].ID
String
ReliableID for the patient
Patient.Identifiers[].IDType
String
ReliableType of ID.
E.g. MRN, EPI
Patient.Demographics.FirstName
String
ReliablePatient's first name
Patient.Demographics.MiddleName
String
PossiblePatient's middle name or middle initial. For patients with multiple middle names, all their middle names are included in this field.
Patient.Demographics.LastName
String
ReliablePatient's last name
Patient.Demographics.DOB
String
ReliablePatient's date of birth.
In ISO 8601 format
Patient.Demographics.SSN
String
ProbablePatient's social security number
Patient.Demographics.Sex
String
ReliableValueSetPatient's sex
-
Additional values may be added by Redox in the future.
-
Patient.Demographics.Race
String
PossibleValueSetPatient's race
-
Additional values may be added by Redox in the future.
-
Patient.Demographics.IsHispanic
Boolean
PossibleValueSetIndicates if the patient is of hispanic origin.
-
Additional values may be added by Redox in the future.
-
Patient.Demographics.Religion
String
PossibleValueSetPatient's religious affiliation
-
Additional values may be added by Redox in the future.
-
Patient.Demographics.MaritalStatus
String
PossibleValueSetPatient's marital status
-
Additional values may be added by Redox in the future.
-
Patient.Demographics.IsDeceased
Boolean
PossibleIndicates if the patient is deceased
Patient.Demographics.DeathDateTime
DateTime
PossibleDate and Time the patient was proclaimed deceased.
ISO 8601 Format
Patient.Demographics.PhoneNumber.Home
String
ProbablePatient's home phone number.
In E. 164 Format. (e.g. +16085551234)
Patient.Demographics.PhoneNumber.Office
String
ProbablePatient's office phone number.
In E. 164 Format. (e.g. +16085551234)
Patient.Demographics.PhoneNumber.Mobile
String
ProbablePatient's mobile phone number.
In E. 164 Format. (e.g. +16085551234)
Patient.Demographics.EmailAddresses[]
Array of Strings
ProbablePatient's email address(es)
Patient.Demographics.Language
String
PossibleValueSetPatient's primary spoken language
-
Additional values may be added by Redox in the future.
-
Patient.Demographics.Citizenship[]
Array of strings
PossibleValueSetPatient's nation(s) of citizenship
-
Additional values may be added by Redox in the future.
-
Patient.Demographics.Address
Object
ProbablePatient's home address
Patient.Demographics.Address.StreetAddress
String
ProbableStreet address
Patient.Demographics.Address.City
String
ProbableCity
Patient.Demographics.Address.State
String
ProbableState
Patient.Demographics.Address.ZIP
String
ProbableZIP
Patient.Demographics.Address.County
String
PossibleCounty
Patient.Demographics.Address.Country
String
PossibleValueSetCountry
-
Additional values may be added by Redox in the future.
-
Patient.Notes[]
Array of strings
PossiblePatient-level notes
Visit
Visit.VisitNumber
String
PossibleVisit Number.
Unique ID of a single visit
Items
Items[].Identifiers[]
Array of Object
Reliable
Items[].Identifiers[].ID
String
ReliableRequiredThe identifier list for an item can contain multiple aliases, including the application ID for the item, an external ordering system's ID, or the an ID that the health system uses to identify the item across systems.
Items[].Identifiers[].IDType
String
ReliableRequiredThe type of identifier in Item.Identifiers[].ID.
This is usually a string that roughly corresponds to which application assigned the ID. Example: Redox, Lawson, RedoxHealthSystem
Items[].Description
String
ProbableA free text description of the item name.
Used to show a human-readable version of the item, or for lookup..
Items[].Quantity
Numeric
ProbableThe quantity of the item being referred to. For update messages, this usually refers to the quantity on hand, for requisition messages, this is the number used/ordered.
Items[].Type
String
ProbableWhat kind of item this is (Equipment, Supply, Implant, Medication).
This is used primary for filtering.
Items[].Units
String
ProbableThe unit of measure for the item. Examples: Box, Pack, Syringe, etc.
Different products are ordered/used in different quantities. For example, you may buy a case of gauze, and those are used as packages.
Items[].Procedure.Code
String
ProbableA procedure attached to the item. This is usually a HCPCS code that is used to bill for the item.
Items[].Procedure.Codeset
String
ProbableCodeset of the procedure.
Items[].Procedure.Modifier
String
ProbableA modifier (if applicable), usually used in conjunction with the HCPCS code.
Items[].Notes
String
ProbableFree text comments about the item.
Items[].Vendor
Object
ProbableInformation about the specific vendor that the item is from.
Items[].Vendor.ID
String
ProbableThe ID for the vendor that would be used in automated purchase system.
Items[].Vendor.Name
String
ProbableA name/description of the vendor.
Items[].Vendor.CatalogNumber
String
ProbableThe Vendor's ID for the item. This will be used in any kind of automated purchase system.
Items[].WastedQuantity
Numeric
ProbableThe number of items wasted. If present the used and wasted quantities should equal the total quantity.
Items[].UsedQuantity
Numeric
ProbableThe number of items opened or used.
Items[].SerialNumber
String
ProbableSometimes items such a implants will have their serial number documented in EHR.
Items[].LotNumber
String
ProbableTypically corresponds to an implant or some other more durable item.
Items[].Location
Object
ProbableWhere the item is physically stored in the healthcare facility.
Items[].Location.Facility
String
ProbableExample: Community Hospital
Items[].Location.Department
String
ProbableDepartment where the item is physically stored.
Items[].Location.ID
String
ProbableAn identifier for the location of the product - this can correspond to one of multiple store rooms in a particular facility, or the facility itself.
Items[].Location.Bin
String
ProbableAn further identifier for where the item is located.
Items[].OrderingProvider.ID
String
PossibleID of the depletion ordering provider.
This ID is often required for Inpatient Visits.
Items[].OrderingProvider.IDType
String
PossibleID type of the ID for the depletion ordering provider
Items[].OrderingProvider.FirstName
String
PossibleFirst name of the depletion ordering provider
Items[].OrderingProvider.LastName
String
PossibleLast name of the depletion ordering provider
Items[].OrderingProvider.Credentials[]
Array of Strings
PossibleList of credentials for the depletion ordering provider.
e.g. MD, PhD
Items[].OrderingProvider.Address
Object
PossibleProvider's address
Items[].OrderingProvider.Address.StreetAddress
String
PossibleStreet address
Items[].OrderingProvider.Address.City
String
PossibleCity
Items[].OrderingProvider.Address.State
String
PossibleState
Items[].OrderingProvider.Address.ZIP
String
PossibleZIP
Items[].OrderingProvider.Address.County
String
PossibleCounty
Items[].OrderingProvider.Address.Country
String
PossibleValueSetCountry
-
Additional values may be added by Redox in the future.
-
Items[].OrderingProvider.EmailAddresses[]
Array of Strings
ProbableProvider's email address(es)
Items[].OrderingProvider.PhoneNumber.Office
String
PossibleProvider's office phone number.
In E. 164 Format. (e.g. +16085551234)
Items[].OrderingProvider.Location
Object
PossibleProvider's location
Items[].OrderingProvider.Location.Type
String
PossibleType of location.
Examples: Clinic, Department, Home, Nursing Unit, Provider's Office, Phone
Items[].OrderingProvider.Location.Facility
String
PossibleFacility.
Example: Community Hospital
Items[].OrderingProvider.Location.FacilityIdentifiers[]
Array of Objects
PossibleList of IDs specific to this facility
Items[].OrderingProvider.Location.FacilityIdentifiers[].ID
String
PossibleAn ID specific to this facility
Items[].OrderingProvider.Location.FacilityIdentifiers[].IDType
String
PossibleThe source or system to which this ID pertains.
Could be an OID or a human-readable name
Items[].OrderingProvider.Location.Department
String
PossibleDepartment
Items[].OrderingProvider.Location.DepartmentIdentifiers[]
Array of Objects
PossibleList of IDs specific to this department
Items[].OrderingProvider.Location.DepartmentIdentifiers[].ID
String
PossibleAn ID specific to this department
Items[].OrderingProvider.Location.DepartmentIdentifiers[].IDType
String
PossibleThe source or system to which this ID pertains.
Could be an OID or a human-readable name
Items[].OrderingProvider.Location.Room
String
PossibleRoom.
Example: 136
{
"Meta": {
"DataModel": "Inventory",
"EventType": "Deplete",
"EventDateTime": "2023-05-23T13:49:48.036Z",
"Test": true,
"Source": {
"ID": "7ce6f387-c33c-417d-8682-81e83628cbd9",
"Name": "Redox Dev Tools"
},
"Destinations": [
{
"ID": "af394f14-b34a-464f-8d24-895f370af4c9",
"Name": "Redox EMR"
}
],
"Logs": [
{
"ID": "d9f5d293-7110-461e-a875-3beb089e79f3",
"AttemptID": "925d1617-2fe0-468c-a14c-f8c04b572c54"
}
],
"FacilityCode": null
},
"Patient": {
"Identifiers": [
{
"ID": "0000000001",
"IDType": "MR"
},
{
"ID": "e167267c-16c9-4fe3-96ae-9cff5703e90a",
"IDType": "EHRID"
},
{
"ID": "a1d4ee8aba494ca",
"IDType": "NIST"
}
],
"Demographics": {
"FirstName": "Timothy",
"MiddleName": "Paul",
"LastName": "Bixby",
"DOB": "2008-01-06",
"SSN": "101-01-0001",
"Sex": "Male",
"Race": "White",
"IsHispanic": null,
"Religion": null,
"MaritalStatus": "Single",
"IsDeceased": null,
"DeathDateTime": null,
"PhoneNumber": {
"Home": "+18088675301",
"Office": null,
"Mobile": null
},
"EmailAddresses": [],
"Language": "en",
"Citizenship": [],
"Address": {
"StreetAddress": "4762 Hickory Street",
"City": "Monroe",
"State": "WI",
"ZIP": "53566",
"County": "Green",
"Country": "US"
}
},
"Notes": []
},
"Visit": {
"VisitNumber": null
},
"Items": [
{
"Identifiers": [
{
"ID": "22246069",
"IDType": "SUPPLY"
}
],
"Description": "Gauze Sponges",
"Quantity": 4,
"Type": "Supply",
"Units": "Bandages",
"Procedure": {
"Code": null,
"Codeset": null,
"Modifier": null
},
"Notes": "Case of 2000",
"Vendor": {
"ID": "FSH",
"Name": "FISHER SCIENTIFIC",
"CatalogNumber": "22-246069"
},
"WastedQuantity": 1,
"UsedQuantity": 3,
"SerialNumber": null,
"LotNumber": null,
"Location": {
"Facility": null,
"Department": null,
"ID": "Central",
"Bin": "42"
},
"OrderingProvider": {
"ID": "4356789876",
"IDType": "NPI",
"FirstName": "Pat",
"LastName": "Granite",
"Credentials": [
"MD"
],
"Address": {
"StreetAddress": "123 Main St.",
"City": "Madison",
"State": "WI",
"ZIP": "53703",
"County": "Dane",
"Country": "USA"
},
"EmailAddresses": [],
"PhoneNumber": {
"Office": "+16085551234"
},
"Location": {
"Type": null,
"Facility": null,
"FacilityIdentifiers": [],
"Department": null,
"DepartmentIdentifiers": [],
"Room": null
}
}
}
]
}