Spaces:
Runtime error
Runtime error
import streamlit as st | |
import hl7 | |
import definitions | |
from enum import Enum | |
class AdtEvents(Enum): | |
"""ADT events for MSH segment""" | |
Patient_Admit = 'A01' | |
Patient_Transfer = 'A02' | |
Patient_Discharge = 'A03' | |
Patient_Registration = 'A04' | |
Patient_Pre_Admission = 'A05' | |
Patient_Information_Update = 'A08' | |
Cancel_Patient_Admit = 'A11' | |
Cancel_Patient_Transfer = 'A12' | |
Cancel_Patient_Discharge = 'A13' | |
Pending_Admit = 'A14' | |
Pending_Transfer = 'A15' | |
Pending_Discharge = 'A16' | |
def is_match(self, event) -> bool: | |
return self.value == event | |
def get_label(event_type: str) -> str: | |
try: | |
enum_val = AdtEvents(event_type) | |
label = enum_val.name.replace('_', ' ') | |
except IndexError: | |
label = 'Unknown {}'.format(event_type) | |
return label | |
class DiagnosisType(Enum): | |
"""Diagnosis type for DG1 segment""" | |
A = "Admitting" | |
AD = 'admitting diagnosis' | |
BD = 'treating diagnosis' | |
ED = 'referral diagnosis' | |
EL = 'discharge/transfer diagnosis' | |
F = "Final" | |
ND = 'diagnosis' | |
NO = 'diagnosis operation' | |
NU = 'follow-up diagnosis that has justified the incapacity to work' | |
UD = 'referral diagnosis' | |
VO = 'preoperative diagnosis' | |
W = 'Waiting' | |
ZD = 'ZD' | |
class PatientClass(Enum): | |
E = 'EMERGENCY' | |
I = 'INPATIENT' | |
O = 'OUTPATIENT' | |
P = 'PREADMIT' | |
R = 'RECURRING PATIENT' | |
B = 'OBSTETRICS' | |
C = 'COMMERCIAL ACCOUNT' | |
N = 'NOT APPLICABLE' | |
U = 'UNKNOWN' | |
NO_MATCH = 'UNKNOWN' | |
class CleanPatientClass(Enum): | |
ER = 'E' | |
IP = 'I' | |
class PatientClassText(Enum): | |
EMERGENCY = 'E' | |
INPATIENT = 'I' | |
OUTPATIENT = 'O' | |
PREADMIT = 'P' | |
RECURRING_PATIENT = 'R' | |
OBSTETRICS = 'B' | |
COMMERCIAL_ACCOUNT = 'C' | |
NOT_APPLICABLE = 'N' | |
UNKNOWN = 'U' | |
class AdmitSource(Enum): | |
Physician_Referral = '1' | |
PR = '1' | |
Clinic_Referral = '2' | |
HMO_Referral = '3' | |
HMO = '3' | |
Transfer_From_Hospital = '4' | |
Transfer_From_Skilled_Nursing_Facility = '5' | |
SNF = '5' | |
Transfer_From_Another_Health_Care_Facility = '6' | |
Emergency_Room = '7' | |
ER = '7' | |
Court_or_Law_Enforcement = '8' | |
Information_Not_Available = '9' | |
Transfer_From_Critical_Access_Hospital = 'A' | |
Transfer_From_Another_Home_Health_Agency = 'B' | |
Readmission_to_Same_Home_Health_Agency = 'C' | |
Transfer_from_Hospital_Inpatient_In_Same_Facility = 'D' | |
def get_value(attribute: str) -> str: | |
try: | |
return AdmitSource[attribute].value | |
except KeyError: | |
hl7tools_logger.warning("No match found for Admit Source '{}', returning 0.".format(attribute)) | |
return '0' | |
class DiagnosisPriority(Enum): | |
"""Diagnosis priority for DG1 segment""" | |
DP_1 = '1 The primary diagnosis' | |
DP_1_1 = '1.1 main diagnosis (primary)' | |
DP_1_2 = '1.2 main diagnosis (secondary)' | |
class MshSegment(Enum): | |
"""Message Header""" | |
Sending_Application_Name = 'MSH{}.F3.R1.C1' | |
Sending_Application_Universal_ID = 'MSH{}.F3.R1.C2' | |
Sending_Application_Universal_ID_Type = 'MSH{}.F3.R1.C3' | |
Sending_Facility_Name = 'MSH{}.F4.R1.C1' | |
Sending_Facility_Universal_ID = 'MSH{}.F4.R1.C2' | |
Sending_Facility_Universal_ID_Type = 'MSH{}.F4.R1.C3' | |
Receiving_Application_Name = 'MSH{}.F5.R1.C1' | |
Receiving_Application_Universal_ID = 'MSH{}.F5.R1.C2' | |
Receiving_Application_Universal_ID_Type = 'MSH{}.F5.R1.C3' | |
Receiving_Facility_Name = 'MSH{}.F6.R1.C1' | |
Receiving_Facility_Universal_ID = 'MSH{}.F6.R1.C2' | |
Receiving_Facility_Universal_ID_Type = 'MSH{}.F6.R1.C3' | |
Msg_Timestamp = 'MSH{}.F7.R1.C1' | |
Security = 'MSH{}.F8' | |
Msg_Type = 'MSH{}.F9.R1.C1' | |
Msg_Trigger_Event = 'MSH{}.F9.R1.C2' | |
Msg_Structure_ID = 'MSH{}.F9.R1.C3' | |
Msg_control_ID = 'MSH{}.F10.R1.C1' | |
Processing_ID = 'MSH{}.F11.R1.C1' | |
Processing_Mode_ID = 'MSH{}.F11.R1.C2' | |
Version_ID = 'MSH{}.F12.R1.C1' | |
Version_Internationalization_Code = 'MSH{}.F12.R1.C2' | |
Version_Internationalization_Version = 'MSH{}.F12.R1.C3' | |
Sequence_Number = 'MSH{}.F13' | |
Accept_Ack_Type = 'MSH{}.F15' | |
Application_Ack_Type = 'MSH{}.F16' | |
Country_Code = 'MSH{}.F17' | |
Character_Set = 'MSH{}.F18' | |
ODX_Id = 'MSH{}.F21' | |
def get_segment_name() -> str: | |
return 'MSH' | |
def get_segment_title() -> str: | |
return 'Message Header' | |
class EvnSegment(Enum): | |
"""Event""" | |
Event_Type_Code = 'EVN{}.F1' | |
Recorded_Date_Time = 'EVN{}.F2.R1.C1' | |
Recorded_Date_Time_Degree_of_Precision = 'EVN{}.F2.R1.C2' | |
Date_Time_Planned_Event_Time = 'EVN{}.F3.R1.C1' | |
Date_Time_Planned_Degree_of_Precision = 'EVN{}.F3.R1.C2' | |
Event_Reason_Code = 'EVN{}.F4' | |
Operator_ID_Number = 'EVN{}.F5.R1.C1' | |
Operator_ID_Family_Name_Surname = 'EVN{}.F5.R1.C2.S1' | |
Operator_ID_Family_Name_Own_Surname_Prefix = 'EVN{}.F5.R1.C2.S2' | |
Operator_ID_Given_Name = 'EVN{}.F5.R1.C3' | |
Operator_ID_Middle_Initial = 'EVN{}.F5.R1.C4' | |
Operator_ID_Suffix = 'EVN{}.F5.R1.C5' | |
Operator_ID_Prefix = 'EVN{}.F5.R1.C6' | |
Operator_ID_Degree = 'EVN{}.F5.R1.C7' | |
Operator_ID_Source_Table = 'EVN{}.F5.R1.C8' | |
Operator_ID_Assigning_Authority = 'EVN{}.F5.R1.C9' | |
Operator_ID_Name_Type_Code = 'EVN{}.F5.R1.C10' | |
Operator_ID_Identifier_Check_Digit = 'EVN{}.F5.R1.C11' | |
Operator_ID_Check_Digit_Scheme = 'EVN{}.F5.R1.C12' | |
Operator_ID_Identifier_Type_Code = 'EVN{}.F5.R1.C13' | |
Operator_ID_Assigning_Facility = 'EVN{}.F5.R1.C14' | |
Operator_ID_Name_Representation_Code = 'EVN{}.F5.R1.C15' | |
Operator_ID_Name_Context = 'EVN{}.F5.R1.C16' | |
Operator_ID_Name_Validity_Range = 'EVN{}.F5.R1.C17' | |
Operator_ID_Name_Assembly_Order = 'EVN{}.F5.R1.C18' | |
Operator_ID_Effective_Date = 'EVN{}.F5.R1.C19' | |
Operator_ID_Expiration_Date = 'EVN{}.F5.R1.C20' | |
Operator_ID_Professional_Suffix = 'EVN{}.F5.R1.C21' | |
Operator_ID_Assigning_Jurisdiction = 'EVN{}.F5.R1.C22' | |
Operator_ID_Assigning_Agency_or_Department = 'EVN{}.F5.R1.C23' | |
Event_Occurred_Time = 'EVN{}.F6.R1.C1' | |
Event_Occurred_Degree_of_Precision = 'EVN{}.F6.R1.C2' | |
Event_Facility_Namespace_ID = 'EVN{}.F7.R1.C1' | |
Event_Facility_Universal_ID = 'EVN{}.F7.R1.C2' | |
Event_Facility_Universal_ID_Type = 'EVN{}.F7.R1.C3' | |
def get_segment_name() -> str: | |
return 'EVN' | |
def get_segment_title() -> str: | |
return 'Event' | |
class PidSegment(Enum): | |
"""Patient Identification""" | |
Patient_ID = 'PID{}.F2.R1.C1' | |
Patient_ID_Assigning_Auth = 'PID{}.F2.R1.C4' | |
Patient_ID_Type_Code = 'PID{}.F2.R1.C5' | |
Patient_ID_List = 'PID{}.F3.R1.C1' | |
Patient_ID_List_Assigning_Auth = 'PID{}.F3.R1.C4' | |
Patient_ID_List_Type_Code = 'PID{}.F3.R1.C5' | |
Patient_ID_Alt = 'PID{}.F4.R1.C1' | |
Patient_ID_Alt_Assigning_Auth = 'PID{}.F4.R1.C4' | |
Patient_ID_Alt_Type_Code = 'PID{}.F4.R1.C5' | |
Patient_Last_Name = 'PID{}.F5.R1.C1' | |
Patient_First_Name = 'PID{}.F5.R1.C2' | |
Patient_Middle_Name = 'PID{}.F5.R1.C3' | |
Patient_DOB = 'PID{}.F7' | |
Patient_Gender = 'PID{}.F8' | |
Patient_Address_Street_1 = 'PID{}.F11.R1.C1' | |
Patient_Address_Street_2 = 'PID{}.F11.R1.C2' | |
Patient_Address_City = 'PID{}.F11.R1.C3' | |
Patient_Address_State = 'PID{}.F11.R1.C4' | |
Patient_Address_Zip = 'PID{}.F11.R1.C5' | |
Patient_Phone_Number_Home = 'PID{}.F13.R1.C1' | |
Marital_Status = 'PID{}.F16' | |
Patient_Account_Number = 'PID{}.F18.R1.C1' | |
Patient_SSN = 'PID{}.F19' | |
def get_segment_name() -> str: | |
return 'PID' | |
def get_segment_title() -> str: | |
return 'Patient ID' | |
class Pd1Segment(Enum): | |
"""Patient Additional Demographic""" | |
Living_Dependency = 'PD1{}.F1' | |
Living_Arrangement = 'PD1{}.F2' | |
Patient_Primary_Facility_Org_Name = 'PD1{}.F3.R1.C1' | |
Patient_Primary_Facility_Org_Name_Type_Code = 'PD1{}.F3.R1.C2' | |
Patient_Primary_Facility_Org_ID_Number = 'PD1{}.F3.R1.C3' | |
Patient_Primary_Facility_Org_Check_Digit = 'PD1{}.F3.R1.C4' | |
Patient_Primary_Facility_Org_Check_Digit_Scheme = 'PD1{}.F3.R1.C5' | |
Patient_Primary_Facility_Org_Assigning_Authority = 'PD1{}.F3.R1.C6' | |
Patient_Primary_Facility_Org_Identifier_Type_Code = 'PD1{}.F3.R1.C7' | |
Patient_Primary_Facility_Org_Assigning_Facility = 'PD1{}.F3.R1.C8' | |
Patient_Primary_Facility_Org_Name_Representation_Code = 'PD1{}.F3.R1.C9' | |
Patient_Primary_Facility_Org_Name_Organization_Identifier = 'PD1{}.F3.R1.C10' | |
Patient_PCP_ID_Number = 'PD1{}.F4.R1.C1' | |
Patient_PCP_ID_Family_Name = 'PD1{}.F4.R1.C2' | |
Patient_PCP_ID_Given_Name = 'PD1{}.F4.R1.C3' | |
Patient_PCP_ID_Middle_Initial = 'PD1{}.F4.R1.C4' | |
Patient_PCP_ID_Suffix = 'PD1{}.F4.R1.C5' | |
Patient_PCP_ID_Prefix = 'PD1{}.F4.R1.C6' | |
Patient_PCP_ID_Degree = 'PD1{}.F4.R1.C7' | |
Patient_PCP_ID_Source_Table = 'PD1{}.F4.R1.C8' | |
Patient_PCP_ID_Assigning_Authority = 'PD1{}.F4.R1.C9' | |
Patient_PCP_ID_Name_Type_Code = 'PD1{}.F4.R1.C10' | |
Patient_PCP_ID_Identifier_Check_Digit = 'PD1{}.F4.R1.C11' | |
Patient_PCP_ID_Check_Digit_Scheme = 'PD1{}.F4.R1.C12' | |
Patient_PCP_ID_Identifier_Type_Code = 'PD1{}.F4.R1.C13' | |
Patient_PCP_ID_Assigning_Facility = 'PD1{}.F4.R1.C14' | |
Patient_PCP_ID_Name_Representation_Code = 'PD1{}.F4.R1.C15' | |
Patient_PCP_ID_Name_Context = 'PD1{}.F4.R1.C16' | |
Patient_PCP_ID_Name_Validity_Range = 'PD1{}.F4.R1.C17' | |
Patient_PCP_ID_Name_Assembly_Order = 'PD1{}.F4.R1.C18' | |
Patient_PCP_ID_Effective_Date = 'PD1{}.F4.R1.C19' | |
Patient_PCP_ID_Expiration_Date = 'PD1{}.F4.R1.C20' | |
Patient_PCP_ID_Professional_Suffix = 'PD1{}.F4.R1.C21' | |
Patient_PCP_ID_Assigning_Jurisdiction = 'PD1{}.F4.R1.C22' | |
Patient_PCP_ID_Assigning_Agency_or_Dept = 'PD1{}.F4.R1.C23' | |
Student_Indicator = 'PD1{}.F5' | |
Handicap = 'PD1{}.F6' | |
Living_Will_Code = 'PD1{}.F7' | |
Organ_Donor_Code = 'PD1{}.F8' | |
Separate_Bill = 'PD1{}.F9' | |
Duplicate_Patient_ID_Number = 'PD1{}.F10.R1.C1' | |
Duplicate_Patient_Check_Digit = 'PD1{}.F10.R1.C2' | |
Duplicate_Patient_Check_Digit_Scheme = 'PD1{}.F10.R1.C3' | |
Duplicate_Patient_Assigning_Authority = 'PD1{}.F10.R1.C4' | |
Duplicate_Patient_Identifier_Type_Code = 'PD1{}.F10.R1.C5' | |
Duplicate_Patient_Assigning_Facility = 'PD1{}.F10.R1.C6' | |
Duplicate_Patient_Effective_Date = 'PD1{}.F10.R1.C7' | |
Duplicate_Patient_Expiration_Date = 'PD1{}.F10.R1.C8' | |
Duplicate_Patient_Assigning_Jurisdiction = 'PD1{}.F10.R1.C9' | |
Duplicate_Patient_Assigning_Agency_or_Dept = 'PD1{}.F10.R1.C10' | |
Publicity_Code = 'PD1{}.F11' | |
Protection_Indicator = 'PD1{}.F12' | |
Protection_Indicator_Effective_Date = 'PD1{}.F13' | |
Place_of_Worship_Organization_Name = 'PD1{}.F14.R1.C1' | |
Place_of_Worship_Organization_Name_Type_Code = 'PD1{}.F14.R1.C2' | |
Place_of_Worship_ID_Number = 'PD1{}.F14.R1.C3' | |
Place_of_Worship_Check_Digit = 'PD1{}.F14.R1.C4' | |
Place_of_Worship_Check_Digit_Scheme = 'PD1{}.F14.R1.C5' | |
Place_of_Worship_Assigning_Authority = 'PD1{}.F14.R1.C6' | |
Place_of_Worship_Identifier_Type_Code = 'PD1{}.F14.R1.C7' | |
Place_of_Worship_Assigning_Facility = 'PD1{}.F14.R1.C8' | |
Place_of_Worship_Name_Representation_Code = 'PD1{}.F14.R1.C9' | |
Place_of_Worship_Organization_Identifier = 'PD1{}.F14.R1.C10' | |
Advance_Directive_Code_Identifier = 'PD1{}.F15.R1.C1' | |
Advance_Directive_Code_Text = 'PD1{}.F15.R1.C2' | |
Advance_Directive_Code_Name_of_Coding_System = 'PD1{}.F15.R1.C3' | |
Advance_Directive_Code_Alternate_Identifier = 'PD1{}.F15.R1.C4' | |
Advance_Directive_Code_Alternate_Text = 'PD1{}.F15.R1.C5' | |
Advance_Directive_Code_Name_of_Alternate_Coding_System = 'PD1{}.F15.R1.C6' | |
Immunization_Registry_Status = 'PD1{}.F16' | |
Immunization_Registry_Status_Effective_Date = 'PD1{}.F17' | |
Publicity_Code_Effective_Date = 'PD1{}.F18' | |
Military_Branch = 'PD1{}.F19' | |
Military_Rank_Grade = 'PD1{}.F20' | |
Military_Status = 'PD1{}.F21' | |
def get_segment_name() -> str: | |
return 'PD1' | |
def get_segment_title() -> str: | |
return 'Patient Additional Demographic' | |
class RolSegment(Enum): | |
Role_Instance_ID = 'ROL{}.F1' | |
Action_Code = 'ROL{}.F2' | |
Role_ROL = 'ROL{}.F3' | |
Role_Person = 'ROL{}.F4' | |
Role_Begin_Date_Time = 'ROL{}.F5' | |
Role_End_Date_Time = 'ROL{}.F6' | |
Role_Duration = 'ROL{}.F7' | |
Role_Action_Reason = 'ROL{}.F8' | |
Provider_Type = 'ROL{}.F9' | |
Organization_Unit_Type = 'ROL{}.F10' | |
Office_Home_Address_Birthplace = 'ROL{}.F11' | |
Phone = 'ROL{}.F12' | |
Persons_Location = 'ROL{}.F13' | |
Organization = 'ROL{}.F14' | |
def get_segment_name() -> str: | |
return 'ROL' | |
def get_segment_title() -> str: | |
return 'Role' | |
class Pv1Segment(Enum): | |
Set_ID = 'PV1{}.F1' | |
Patient_Class_ID = 'PV1{}.F2.R1.C1' | |
Patient_Class_Text = 'PV1{}.F2.R1.C2' # inpatient, outpatient, etc | |
Patient_Class_Name_of_Coding_System = 'PV1{}.F2.R1.C3' | |
Patient_Class_Alt_ID = 'PV1{}.F2.R1.C4' | |
Patient_Class_Alt_Text = 'PV1{}.F2.R1.C5' | |
Patient_Class_2nd_Alt_ID = 'PV1{}.F2.R1.C10' | |
Patient_Class_2nd_Alt_Text = 'PV1{}.F2.R1.C11' | |
Patient_Loc_Point_of_Care = 'PV1{}.F3.R1.C1' | |
Patient_Loc_Room = 'PV1{}.F3.R1.C2' | |
Patient_Loc_Bed = 'PV1{}.F3.R1.C3' | |
Patient_Loc_Facility = 'PV1{}.F3.R1.C4' | |
Patient_Loc_Location_Status = 'PV1{}.F3.R1.C5' | |
Patient_Loc_Assigning_Authority = 'PV1{}.F3.R1.C11' | |
Admission_Type_ID = 'PV1{}.F4.R1.C1' | |
Admission_Type_Text = 'PV1{}.F4.R1.C2' | |
Admission_Type_Alt_ID = 'PV1{}.F4.R1.C4' | |
Admission_Type_Alt_Text = 'PV1{}.F4.R1.C5' | |
Admission_Type_2nd_Alt_ID = 'PV1{}.F4.R1.C10' | |
Admission_Type_2nd_Alt_Text = 'PV1{}.F4.R1.C11' | |
Attending_Doctor = 'PV1{}.F7' | |
Attending_Doctor_Person_ID = 'PV1{}.F7.R1.C1' | |
Attending_Doctor_Family_Name = 'PV1{}.F7.R1.C2.S1' | |
Attending_Doctor_Family_Name_Own_Surname_Prefix = 'PV1{}.F7.R1.C2.S2' | |
Attending_Doctor_Given_Name = 'PV1{}.F7.R1.C3' | |
Attending_Doctor_Middle_Initial = 'PV1{}.F7.R1.C4' | |
Attending_Doctor_Suffix = 'PV1{}.F7.R1.C5' | |
Attending_Doctor_Prefix = 'PV1{}.F7.R1.C6' | |
Attending_Doctor_Degree = 'PV1{}.F7.R1.C7' | |
Attending_Doctor_Source_Table = 'PV1{}.F7.R1.C8' | |
Attending_Doctor_Assigning_Authority = 'PV1{}.F7.R1.C9' | |
Attending_Doctor_Name_Type_Code = 'PV1{}.F7.R1.C10' | |
Attending_Doctor_Identifier_Check_Digit = 'PV1{}.F7.R1.C11' | |
Attending_Doctor_Check_Digit_Scheme = 'PV1{}.F7.R1.C12' | |
Attending_Doctor_Identifier_Type_Code = 'PV1{}.F7.R1.C13' | |
Attending_Doctor_Assigning_Facility = 'PV1{}.F7.R1.C14' | |
Attending_Doctor_Name_Representation_Code = 'PV1{}.F7.R1.C15' | |
Attending_Doctor_Name_Context = 'PV1{}.F7.R1.C16' | |
Attending_Doctor_Name_Validity_Range = 'PV1{}.F7.R1.C17' | |
Attending_Doctor_Name_Assembly_Order = 'PV1{}.F7.R1.C18' | |
Attending_Doctor_Effective_Date = 'PV1{}.F7.R1.C19' | |
Attending_Doctor_Expiration_Date = 'PV1{}.F7.R1.C20' | |
Attending_Doctor_Professional_Suffix = 'PV1{}.F7.R1.C21' | |
Attending_Doctor_Assigning_Jurisdiction = 'PV1{}.F7.R1.C22' | |
Attending_Doctor_Assigning_Agency_or_Department = 'PV1{}.F7.R1.C23' | |
Referring_Doctor = 'PV1{}.F8' | |
Referring_Doctor_Person_ID = 'PV1{}.F8.R1.C1' | |
Referring_Doctor_Family_Name = 'PV1{}.F8.R1.C2.S1' | |
Referring_Doctor_Family_Name_Own_Surname_Prefix = 'PV1{}.F8.R1.C2.S2' | |
Referring_Doctor_Given_Name = 'PV1{}.F8.R1.C3' | |
Referring_Doctor_Middle_Initial = 'PV1{}.F8.R1.C4' | |
Referring_Doctor_Suffix = 'PV1{}.F8.R1.C5' | |
Referring_Doctor_Prefix = 'PV1{}.F8.R1.C6' | |
Referring_Doctor_Degree = 'PV1{}.F8.R1.C7' | |
Referring_Doctor_Source_Table = 'PV1{}.F8.R1.C8' | |
Referring_Doctor_Assigning_Authority = 'PV1{}.F8.R1.C9' | |
Referring_Doctor_Name_Type_Code = 'PV1{}.F8.R1.C10' | |
Referring_Doctor_Identifier_Check_Digit = 'PV1{}.F8.R1.C11' | |
Referring_Doctor_Check_Digit_Scheme = 'PV1{}.F8.R1.C12' | |
Referring_Doctor_Identifier_Type_Code = 'PV1{}.F8.R1.C13' | |
Referring_Doctor_Assigning_Facility = 'PV1{}.F8.R1.C14' | |
Referring_Doctor_Name_Representation_Code = 'PV1{}.F8.R1.C15' | |
Referring_Doctor_Name_Context = 'PV1{}.F8.R1.C16' | |
Referring_Doctor_Name_Validity_Range = 'PV1{}.F8.R1.C17' | |
Referring_Doctor_Name_Assembly_Order = 'PV1{}.F8.R1.C18' | |
Referring_Doctor_Effective_Date = 'PV1{}.F8.R1.C19' | |
Referring_Doctor_Expiration_Date = 'PV1{}.F8.R1.C20' | |
Referring_Doctor_Professional_Suffix = 'PV1{}.F8.R1.C21' | |
Referring_Doctor_Assigning_Jurisdiction = 'PV1{}.F8.R1.C22' | |
Referring_Doctor_Assigning_Agency_or_Department = 'PV1{}.F8.R1.C23' | |
Consulting_Doctor = 'PV1{}.F9' | |
Consulting_Doctor_Person_ID = 'PV1{}.F9.R1.C1' | |
Consulting_Doctor_Family_Name = 'PV1{}.F9.R1.C2.S1' | |
Consulting_Doctor_Family_Name_Own_Surname_Prefix = 'PV1{}.F9.R1.C2.S2' | |
Consulting_Doctor_Given_Name = 'PV1{}.F9.R1.C3' | |
Consulting_Doctor_Middle_Initial = 'PV1{}.F9.R1.C4' | |
Consulting_Doctor_Suffix = 'PV1{}.F9.R1.C5' | |
Consulting_Doctor_Prefix = 'PV1{}.F9.R1.C6' | |
Consulting_Doctor_Degree = 'PV1{}.F9.R1.C7' | |
Consulting_Doctor_Source_Table = 'PV1{}.F9.R1.C8' | |
Consulting_Doctor_Assigning_Authority = 'PV1{}.F9.R1.C9' | |
Consulting_Doctor_Name_Type_Code = 'PV1{}.F9.R1.C10' | |
Consulting_Doctor_Identifier_Check_Digit = 'PV1{}.F9.R1.C11' | |
Consulting_Doctor_Check_Digit_Scheme = 'PV1{}.F9.R1.C12' | |
Consulting_Doctor_Identifier_Type_Code = 'PV1{}.F9.R1.C13' | |
Consulting_Doctor_Assigning_Facility = 'PV1{}.F9.R1.C14' | |
Consulting_Doctor_Name_Representation_Code = 'PV1{}.F9.R1.C15' | |
Consulting_Doctor_Name_Context = 'PV1{}.F9.R1.C16' | |
Consulting_Doctor_Name_Validity_Range = 'PV1{}.F9.R1.C17' | |
Consulting_Doctor_Name_Assembly_Order = 'PV1{}.F9.R1.C18' | |
Consulting_Doctor_Effective_Date = 'PV1{}.F9.R1.C19' | |
Consulting_Doctor_Expiration_Date = 'PV1{}.F9.R1.C20' | |
Consulting_Doctor_Professional_Suffix = 'PV1{}.F9.R1.C21' | |
Consulting_Doctor_Assigning_Jurisdiction = 'PV1{}.F9.R1.C22' | |
Consulting_Doctor_Assigning_Agency_or_Department = 'PV1{}.F9.R1.C23' | |
Hospital_Service = 'PV1{}.F10' | |
Hospital_Service_Identifier = 'PV1{}.F10.R1.C1' | |
Hospital_Service_Text = 'PV1{}.F10.R1.C2' | |
Readmission_Indicator = 'PV1{}.F13' | |
Admit_Source = 'PV1{}.F14' | |
Admit_Source_ID = 'PV1{}.F14.R1.C1' | |
Admit_Source_Text = 'PV1{}.F14.R1.C2' | |
Admitting_Doctor = 'PV1{}.F17' | |
Admitting_Doctor_Person_ID = 'PV1{}.F17.R1.C1' | |
Admitting_Doctor_Family_Name = 'PV1{}.F17.R1.C2.S1' | |
Admitting_Doctor_Family_Name_Own_Surname_Prefix = 'PV1{}.F17.R1.C2.S2' | |
Admitting_Doctor_Given_Name = 'PV1{}.F17.R1.C3' | |
Admitting_Doctor_Middle_Initial = 'PV1{}.F17.R1.C4' | |
Admitting_Doctor_Suffix = 'PV1{}.F17.R1.C5' | |
Admitting_Doctor_Prefix = 'PV1{}.F17.R1.C6' | |
Admitting_Doctor_Degree = 'PV1{}.F17.R1.C7' | |
Admitting_Doctor_Source_Table = 'PV1{}.F17.R1.C8' | |
Admitting_Doctor_Assigning_Authority = 'PV1{}.F17.R1.C9' | |
Admitting_Doctor_Name_Type_Code = 'PV1{}.F17.R1.C10' | |
Admitting_Doctor_Identifier_Check_Digit = 'PV1{}.F17.R1.C11' | |
Admitting_Doctor_Check_Digit_Scheme = 'PV1{}.F17.R1.C12' | |
Admitting_Doctor_Identifier_Type_Code = 'PV1{}.F17.R1.C13' | |
Admitting_Doctor_Assigning_Facility = 'PV1{}.F17.R1.C14' | |
Admitting_Doctor_Name_Representation_Code = 'PV1{}.F17.R1.C15' | |
Admitting_Doctor_Name_Context = 'PV1{}.F17.R1.C16' | |
Admitting_Doctor_Name_Validity_Range = 'PV1{}.F17.R1.C17' | |
Admitting_Doctor_Name_Assembly_Order = 'PV1{}.F17.R1.C18' | |
Admitting_Doctor_Effective_Date = 'PV1{}.F17.R1.C19' | |
Admitting_Doctor_Expiration_Date = 'PV1{}.F17.R1.C20' | |
Admitting_Doctor_Professional_Suffix = 'PV1{}.F17.R1.C21' | |
Admitting_Doctor_Assigning_Jurisdiction = 'PV1{}.F17.R1.C22' | |
Admitting_Doctor_Assigning_Agency_or_Department = 'PV1{}.F17.R1.C23' | |
Patient_Type_ID = 'PV1{}.F18.R1.C1' | |
Patient_Type_Text = 'PV1{}.F18.R1.C2' | |
Patient_Type_Alt_ID = 'PV1{}.F18.R1.C4' | |
Patient_Type_Alt_Text = 'PV1{}.F18.R1.C5' | |
Visit_Number = 'PV1{}.F19.R1.C1' | |
Discharge_Disposition = 'PV1{}.F36.R1.C1' | |
Discharge_Disposition_Text = 'PV1{}.F36.R1.C2' | |
Discharge_Disposition_Coding = 'PV1{}.F36.R1.C3' | |
Discharge_Disposition_Alt = 'PV1{}.F36.R1.C4' | |
Discharge_Disposition_Text_Alt = 'PV1{}.F36.R1.C5' | |
Discharge_Disposition_Coding_Alt = 'PV1{}.F36.R1.C6' | |
Discharge_Disposition_Original_Text = 'PV1{}.F36.R1.C9' | |
Discharge_Disposition_Alt2 = 'PV1{}.F36.R1.C10' | |
Discharge_Disposition_Text_Alt2 = 'PV1{}.F36.R1.C11' | |
Discharge_Disposition_Coding_Alt2 = 'PV1{}.F36.R1.C12' | |
Discharge_to_Location = 'PV1{}.F37' | |
# Some records come in with Servicing Facility as a multi-part field. | |
# First part might be NPI. The next could be facility name. | |
Servicing_Facility = 'PV1{}.F39' | |
Servicing_Facility_Name = 'PV1{}.F39.R1.C2' | |
Admit_Date_Time = 'PV1{}.F44' | |
Discharge_Date_Time = 'PV1{}.F45' | |
Current_Patient_Balance = 'PV1{}.F45' | |
Total_Charges = 'PV1{}.F47' | |
Visit_Ind = 'PV1{}.F51' | |
Other_HealthCare_Provider = 'PV1{}.F52' | |
Service_Episode_Description = 'PV1{}.F53' | |
def get_segment_name() -> str: | |
return 'PV1' | |
def get_segment_title() -> str: | |
return 'Patient Visit' | |
# PV2||Routine|^Medicine Refill|||||||||103|||||||||n|N||||||||||N||||||Public Trans | |
class Pv2Segment(Enum): | |
Prior_Pending_Location = 'PV2{}.F1' | |
Prior_Pending_Location_Point_of_Care = 'PV2{}.F1.R1.C1' | |
Prior_Pending_Location_Room = 'PV2{}.F1.R1.C2' | |
Prior_Pending_Location_Bed = 'PV2{}.F1.R1.C3' | |
Prior_Pending_Location_Facility = 'PV2{}.F1.R1.C4' | |
Prior_Pending_Location_Location_Status = 'PV2{}.F1.R1.C5' | |
Accommodation_Code = 'PV2{}.F2' | |
Admit_Reason = 'PV2{}.F3' | |
Transfer_Reason_ID = 'PV2{}.F4.R1.C1' | |
Transfer_Reason_Text = 'PV2{}.F4.R1.C2' | |
Transfer_Reason_Alt_ID = 'PV2{}.F4.R1.C4' | |
Transfer_Reason_Alt_Text = 'PV2{}.F4.R1.C5' | |
Transfer_Reason_2nd_Alt_ID = 'PV2{}.F4.R1.C10' | |
Transfer_Reason_2nd_Alt_Text = 'PV2{}.F4.R1.C11' | |
Patient_Valuables = 'PV2{}.F5' | |
Patient_Valuables_Location = 'PV2{}.F6' | |
Visit_User_Code = 'PV2{}.F7' | |
Expected_Admit_DateTime = 'PV2{}.F8' | |
Expected_Discharge_DateTime = 'PV2{}.F9' | |
Estimated_Length_of_Inpatient_Stay = 'PV2{}.F10' | |
Visit_Description = 'PV2{}.F12' | |
Referral_Source_Code = 'PV2{}.F13' | |
Previous_Service_Date = 'PV2{}.F14' | |
Retention_Indicator = 'PV2{}.F19' | |
Previous_Treatment_Date = 'PV2{}.F26' | |
Military_Partnership_Code = 'PV2{}.F34' # indicates that a military healthcare facility has contracted with a non-military healthcare facility for the use of its services. | |
Military_NonAvailability_Code = 'PV2{}.F35' # N - the patient does not have permissions to use a non-military healthcare facility | |
Mode_of_Arrival = 'PV2{}.F38' | |
Admission_Level_of_Care_Text = 'PV2{}.F40.R1.C2' | |
Patient_Condition_Code = 'PV2{}.F42' | |
def get_segment_name() -> str: | |
return 'PV2' | |
def get_segment_title() -> str: | |
return 'Patient Visit Part 2' | |
class Al1Segment(Enum): | |
"""Patient Allergy Information""" | |
Set_ID = 'AL1{}.F1' | |
Allergen_Type_Code_Identifier = 'AL1{}.F2.R1.C1' | |
Allergen_Type_Code_Name_of_Coding_System = 'AL1{}.F2.R1.C2' | |
Allergen_Type_Code_Text = 'AL1{}.F2.R1.C3' | |
Allergen_Type_Code_Alternate_Identifier = 'AL1{}.F2.R1.C4' | |
Allergen_Type_Code_Alternate_Text = 'AL1{}.F2.R1.C5' | |
Allergen_Type_Code_Name_of_Alternate_Coding_System = 'AL1{}.F2.R1.C6' | |
Allergen_Code_Mnemonic_Desc_Identifier = 'AL1{}.F3.R1.C1' | |
Allergen_Code_Mnemonic_Desc_Text = 'AL1{}.F3.R1.C2' | |
Allergen_Code_Mnemonic_Desc_Name_of_Coding_System = 'AL1{}.F3.R1.C3' | |
Allergen_Code_Mnemonic_Desc_Alternate_Identifier = 'AL1{}.F3.R1.C4' | |
Allergen_Code_Mnemonic_Desc_Alternate_Text = 'AL1{}.F3.R1.C5' | |
Allergen_Code_Mnemonic_Desc_Name_of_Alternate_Coding_System = 'AL1{}.F3.R1.C6' | |
Allergy_Reaction_Code = 'AL1{}.F5' | |
Identification_Date = 'AL1{}.F6' | |
def get_segment_name() -> str: | |
return 'AL1' | |
def get_segment_title() -> str: | |
return 'Patient Allergy' | |
class Dg1Segment(Enum): | |
Set_ID = 'DG1{}.F1' | |
Diagnosis_Coding_Method = 'DG1{}.F2' | |
Diagnosis_Code_ID = 'DG1{}.F3.R1.C1' | |
Diagnosis_Code_Desc = 'DG1{}.F3.R1.C2' | |
Diagnosis_Code_Code_System = 'DG1{}.F3.R1.C3' | |
Diagnosis_Description = 'DG1{}.F4' | |
# Diagnosis_Date_Time | |
Diagnosis_Type = 'DG1{}.F6' | |
# Major_Diagnostic_Category | |
# Diagnostic_Related_Group | |
# DRG_Approval_Indicator | |
# DRG_Grouper_Review_Code | |
# Outlier_Type | |
# Outlier_Days | |
# Outlier_Cost | |
# Grouper_Version_And_Type | |
# Diagnosis_Priority | |
# Diagnosing_Clinician | |
# Diagnosis_Classification | |
# Confidential_Indicator | |
# Attestation_Date_Time | |
# Diagnosis_Identifier | |
# Diagnosis_Action_Code | |
def get_segment_name() -> str: | |
return 'DG1' | |
def get_segment_title() -> str: | |
return 'Diagnosis' | |
class Pr1Segment(Enum): | |
"""Procedures""" | |
Set_ID = 'PR1{}.F1' | |
Procedure_Coding_Method = 'PR1{}.F2' | |
Procedure_Code_Identifier = 'PR1{}.F3.R1.C1' | |
Procedure_Code_Text = 'PR1{}.F3.R1.C2' | |
Procedure_Code_Name_of_Coding_System = 'PR1{}.F3.R1.C3' | |
Procedure_Code_Alternate_Identifier = 'PR1{}.F3.R1.C4' | |
Procedure_Code_Alternate_Text = 'PR1{}.F3.R1.C5' | |
Procedure_Code_Name_of_Alternate_Coding_System = 'PR1{}.F3.R1.C6' | |
Procedure_Description = 'PR1{}.F4' | |
Procedure_Time = 'PR1{}.F5.R1.C1' | |
Procedure_Functional_Type = 'PR1{}.F6' | |
Procedure_Minutes = 'PR1{}.F7' | |
Anesthesiologist_ID_Number = 'PR1{}.F8.R1.C1' | |
Anesthesiologist_Family_Name = 'PR1{}.F8.R1.C2' | |
Anesthesiologist_Given_Name = 'PR1{}.F8.R1.C3' | |
Anesthesiologist_Middle_Initial = 'PR1{}.F8.R1.C4' | |
Anesthesiologist_Suffix = 'PR1{}.F8.R1.C5' | |
Anesthesiologist_Prefix = 'PR1{}.F8.R1.C6' | |
Anesthesiologist_Source_Table = 'PR1{}.F8.R1.C8' | |
Anesthesiologist_Assigning_Authority = 'PR1{}.F8.R1.C9' | |
Anesthesiologist_Name_Type_Code = 'PR1{}.F8.R1.C10' | |
Anesthesiologist_Identifier_Check_Digit = 'PR1{}.F8.R1.C11' | |
Anesthesiologist_Check_Digit_Scheme = 'PR1{}.F8.R1.C12' | |
Anesthesiologist_Identifier_Type_Code = 'PR1{}.F8.R1.C13' | |
Anesthesiologist_Assigning_Facility = 'PR1{}.F8.R1.C14' | |
Anesthesiologist_Name_Representation_Code = 'PR1{}.F8.R1.C15' | |
Anesthesiologist_Name_Context = 'PR1{}.F8.R1.C16' | |
Anesthesiologist_Name_Assembly_Order = 'PR1{}.F8.R1.C18' | |
Anesthesiologist_Effective_Date = 'PR1{}.F8.R1.C19' | |
Anesthesiologist_Expiration_Date = 'PR1{}.F8.R1.C20' | |
Anesthesiologist_Professional_Suffix = 'PR1{}.F8.R1.C21' | |
Anesthesiologist_Assigning_Jurisdiction = 'PR1{}.F8.R1.C22' | |
Anesthesiologist_Assigning_Agency_or_Dept = 'PR1{}.F8.R1.C23' | |
Anesthesia_Code = 'PR1{}.F9' | |
Anesthesia_Minutes = 'PR1{}.F10' | |
Surgeon_ID_Number = 'PR1{}.F11.R1.C1' | |
Surgeon_Family_Name = 'PR1{}.F11.R1.C2' | |
Surgeon_Given_Name = 'PR1{}.F1.R1.C3' | |
Surgeon_Middle_Initial = 'PR1{}.F11.R1.C4' | |
Surgeon_Suffix = 'PR1{}.F11.R1.C5' | |
Surgeon_Prefix = 'PR1{}.F11.R1.C6' | |
Surgeon_Source_Table = 'PR1{}.F11.R1.C8' | |
Surgeon_Assigning_Authority = 'PR1{}.F11.R1.C9' | |
Surgeon_Name_Type_Code = 'PR1{}.F11.R1.C10' | |
Surgeon_Identifier_Check_Digit = 'PR1{}.F11.R1.C11' | |
Surgeon_Check_Digit_Scheme = 'PR1{}.F11.R1.C12' | |
Surgeon_Identifier_Type_Code = 'PR1{}.F11.R1.C13' | |
Surgeon_Assigning_Facility = 'PR1{}.F11.R1.C14' | |
Surgeon_Name_Representation_Code = 'PR1{}.F11.R1.C15' | |
Surgeon_Name_Context = 'PR1{}.F11.R1.C16' | |
Surgeon_Name_Assembly_Order = 'PR1{}.F11.R1.C18' | |
Surgeon_Effective_Date = 'PR1{}.F11.R1.C19' | |
Surgeon_Expiration_Date = 'PR1{}.F11.R1.C20' | |
Surgeon_Professional_Suffix = 'PR1{}.F11.R1.C21' | |
Surgeon_Assigning_Jurisdiction = 'PR1{}.F11.R1.C22' | |
Surgeon_Assigning_Agency_or_Dept = 'PR1{}.F11.R1.C23' | |
Procedure_Practitioner_ID_Number = 'PR1{}.F12.R1.C1' | |
Procedure_Practitioner_Family_Name = 'PR1{}.F12.R1.C2' | |
Procedure_Practitioner_Given_Name = 'PR1{}.F12.R1.C3' | |
Procedure_Practitioner_Middle_Initial = 'PR1{}.F12.R1.C4' | |
Procedure_Practitioner_Suffix = 'PR1{}.F12.R1.C5' | |
Procedure_Practitioner_Prefix = 'PR1{}.F12.R1.C6' | |
Procedure_Practitioner_Source_Table = 'PR1{}.F12.R1.C8' | |
Procedure_Practitioner_Assigning_Authority = 'PR1{}.F12.R1.C9' | |
Procedure_Practitioner_Name_Type_Code = 'PR1{}.F12.R1.C10' | |
Procedure_Practitioner_Identifier_Check_Digit = 'PR1{}.F12.R1.C11' | |
Procedure_Practitioner_Check_Digit_Scheme = 'PR1{}.F12.R1.C12' | |
Procedure_Practitioner_Identifier_Type_Code = 'PR1{}.F12.R1.C13' | |
Procedure_Practitioner_Assigning_Facility = 'PR1{}.F12.R1.C14' | |
Procedure_Practitioner_Name_Representation_Code = 'PR1{}.F12.R1.C15' | |
Procedure_Practitioner_Name_Context = 'PR1{}.F12.R1.C16' | |
Procedure_Practitioner_Name_Assembly_Order = 'PR1{}.F12.R1.C18' | |
Procedure_Practitioner_Effective_Date = 'PR1{}.F12.R1.C19' | |
Procedure_Practitioner_Expiration_Date = 'PR1{}.F12.R1.C20' | |
Procedure_Practitioner_Professional_Suffix = 'PR1{}.F12.R1.C21' | |
Procedure_Practitioner_Assigning_Jurisdiction = 'PR1{}.F12.R1.C22' | |
Procedure_Practitioner_Assigning_Agency_or_Dept = 'PR1{}.F12.R1.C23' | |
Consent_Code_Identifier = 'PR1{}.F13.R1.C1' | |
Consent_Code_Text = 'PR1{}.F13.R1.C2' | |
Consent_Code_Name_of_Coding_System = 'PR1{}.F13.R1.C3' | |
Consent_Code_Alternate_Identifier = 'PR1{}.F13.R1.C4' | |
Consent_Code_Alternate_Text = 'PR1{}.F13.R1.C5' | |
Consent_Code_Name_of_Alternate_Coding_System = 'PR1{}.F13.R1.C6' | |
Procedure_Priority = 'PR1{}.F14' | |
Associated_Diag_Code_Identifier = 'PR1{}.F15.R1.C1' | |
Associated_Diag_Code_Text = 'PR1{}.F15.R1.C2' | |
Associated_Diag_Code_Name_of_Coding_System = 'PR1{}.F15.R1.C3' | |
Associated_Diag_Code_Alternate_Identifier = 'PR1{}.F15.R1.C4' | |
Associated_Diag_Code_Alternate_Text = 'PR1{}.F15.R1.C5' | |
Associated_Diag_Code_Name_of_Alternate_Coding_System = 'PR1{}.F15.R1.C6' | |
Proc_Code_Mod_Identifier = 'PR1{}.F16.R1.C1' | |
Proc_Code_Mod_Text = 'PR1{}.F16.R1.C2' | |
Proc_Code_Mod_Name_of_Coding_System = 'PR1{}.F16.R1.C3' | |
Proc_Code_Mod_Alternate_Identifier = 'PR1{}.F16.R1.C4' | |
Proc_Code_Mod_Alternate_Text = 'PR1{}.F16.R1.C5' | |
Proc_Code_Mod_Name_of_Alternate_Coding_System = 'PR1{}.F16.R1.C6' | |
Procedure_DRG_Type = 'PR1{}.F17' | |
Tissue_Type_Code_Identifier = 'PR1{}.F18.R1.C1' | |
Tissue_Type_Code_Text = 'PR1{}.F18.R1.C2' | |
Tissue_Type_Code_Name_of_Coding_System = 'PR1{}.F18.R1.C3' | |
Tissue_Type_Code_Alternate_Identifier = 'PR1{}.F18.R1.C4' | |
Tissue_Type_Code_Alternate_Text = 'PR1{}.F18.R1.C5' | |
Tissue_Type_Code_Name_of_Alternate_Coding_System = 'PR1{}.F18.R1.C6' | |
Procedure_Identifier_Entity_Identifier = 'PR1{}.F19.R1.C1' | |
Procedure_Identifier_Namespace_ID = 'PR1{}.F19.R1.C2' | |
Procedure_Identifier_Universal_ID = 'PR1{}.F19.R1.C3' | |
Procedure_Identifier_Universal_ID_Type = 'PR1{}.F19.R1.C4' | |
Procedure_Action_Code = 'PR1{}.F20' | |
def get_segment_name() -> str: | |
return 'PR1' | |
def get_segment_title() -> str: | |
return 'Procedures' | |
class In1Segment(Enum): | |
"""Insurance Company Info""" | |
Set_ID = 'IN1{}.F1' | |
Health_Plan_ID = 'IN1{}.F2.R1.C1' | |
Health_Plan_Text = 'IN1{}.F2.R1.C2' | |
Health_Plan_Coding = 'IN1{}.F2.R1.C3' | |
Health_Plan_Alt_ID = 'IN1{}.F2.R1.C4' | |
Health_Plan_Alt_Text = 'IN1{}.F2.R1.C5' | |
Health_Plan_Alt_Coding = 'IN1{}.F2.R1.C6' | |
Health_Plan_Coding_System_Version = 'IN1{}.F2.R1.C7' | |
Health_Plan_Alt_Coding_System_Version = 'IN1{}.F2.R1.C8' | |
Original_Text = 'IN1{}.F2.R1.C9' | |
Insurance_Company_ID_Number = 'IN1{}.F3.R1.C1' | |
Insurance_Company_ID_Assigning_Facility = 'IN1{}.F3.R1.C6' | |
Insurance_Company_ID_Effective_Date = 'IN1{}.F3.R1.C7' | |
Insurance_Company_ID_Expiration_Date = 'IN1{}.F3.R1.C8' | |
Insurance_Company_ID_Assigning_Jurisdiction = 'IN1{}.F3.R1.C9' | |
Insurance_Company_Organization_Name = 'IN1{}.F4.R1.C1' | |
Insurance_Company_Organization_Name_Code = 'IN1{}.F4.R1.C2' | |
Insurance_Company_Street_Address = 'IN1{}.F5.R1.C1' | |
Insurance_Company_Other_Designation = 'IN1{}.F5.R1.C2' | |
Insurance_Company_City = 'IN1{}.F5.R1.C3' | |
Insurance_Company_State_or_Province = 'IN1{}.F5.R1.C4' | |
Insurance_Company_Zip_or_Postal_Code = 'IN1{}.F5.R1.C5' | |
Insurance_Company_Country = 'IN1{}.F5.R1.C6' | |
Insurance_Company_Address_Type = 'IN1{}.F5.R1.C7' | |
Insurance_Company_Phone_Number_Area_Code = 'IN1{}.F7.R1.C6' | |
Insurance_Company_Phone_Number_Local_Number = 'IN1{}.F7.R1.C7' | |
Insurance_Company_Phone_Number_Ext = 'IN1{}.F7.R1.C8' | |
Insurance_Company_Phone_Number_Any_Text = 'IN1{}.F7.R1.C9' | |
Insurance_Company_Phone_Number_Ext_Prefix = 'IN1{}.F7.R1.C10' | |
Insurance_Company_Phone_Number_Unformatted = 'IN1{}.F7.R1.C12' | |
Group_Number = 'IN1{}.F8' | |
Group_Name = 'IN1{}.F9' | |
Insured_Group_Emp_ID_Number = 'IN1{}.F10.R1.C1' | |
Insured_Group_Emp_Name = 'IN1{}.F11.R1.C1' | |
Plan_Effective_Date = 'IN1{}.F12' | |
Plan_Expiration_Date = 'IN1{}.F13' | |
Name_of_Insured_Family_Name = 'IN1{}.F16.R1.C1.S1' | |
Name_of_Insured_Family_Name_Surname = 'IN1{}.F16.R1.C1.S2' | |
Name_of_Insured_Family_Own_Surname_Prefix = 'IN1{}.F16.R1.C1.S3' | |
Name_of_Insured_Given_Name = 'IN1{}.F16.R1.C2' | |
Name_of_Insured_Other_Given_Names = 'IN1{}.F16.R1.C3' | |
Name_of_Insured_Suffix = 'IN1{}.F16.R1.C4' | |
Name_of_Insured_Prefix = 'IN1{}.F16.R1.C5' | |
Policy_Number = 'IN1{}.F36' | |
Coverage_Type = 'IN1{}.F47' | |
Subscriber_ID = 'IN1{}.F49' | |
def get_segment_name() -> str: | |
return 'IN1' | |
def get_segment_title() -> str: | |
return 'Insurance Company Info' | |
class In2Segment(Enum): | |
"""Additional Insurance Info""" | |
Insureds_Employee_ID = 'IN2{}.F1' | |
Insureds_Social_Security_Number = 'IN2{}.F2' | |
Insureds_Employers_Name_and_ID = 'IN2{}.F3' | |
Employer_Information_Data = 'IN2{}.F4' | |
Medicare_Health_Ins_Card_Number = 'IN2{}.F6' | |
Non_Covered_Insurance_Code = 'IN2{}.F24' | |
def get_segment_name() -> str: | |
return 'IN2' | |
def get_segment_title() -> str: | |
return 'Insurance Company Additional Info' | |
class NteSegment(Enum): | |
Set_ID = 'NTE{}.F1' | |
Source_Of_Comment = 'NTE{}.F2' | |
Comment = 'NTE{}.F3' | |
Comment_Type = 'NTE{}.F4' | |
def get_segment_name() -> str: | |
return 'NTE' | |
def get_segment_title() -> str: | |
return 'Note' | |
class OvrSegment(Enum): | |
"""Business Rule Overide""" | |
BRO_Type_ID = 'OVR{}.F1.R1.C1' | |
BRO_Type_Text = 'OVR{}.F1.R1.C2' | |
BRO_Type_Name_of_Coding_System = 'OVR{}.F1.R1.C3' | |
BRO_Type_Alt_ID = 'OVR{}.F1.R1.C4' | |
BRO_Type_Alt_Text = 'OVR{}.F1.R1.C5' | |
BRO_Type_Alt_Name_of_Coding_System = 'OVR{}.F1.R1.C6' | |
BRO_Type_Coding_System_Version = 'OVR{}.F1.R1.C7' | |
BRO_Type_Coding_System_Version_Alt = 'OVR{}.F1.R1.C8' | |
BRO_Type_Original_Text = 'OVR{}.F1.R1.C9' | |
BRO_Code_ID = 'OVR{}.21.R1.C1' | |
BRO_Code_Text = 'OVR{}.F2.R1.C2' | |
BRO_Code_Name_of_Coding_System = 'OVR{}.F2.R1.C3' | |
BRO_Code_Alt_ID = 'OVR{}.F2.R1.C4' | |
BRO_Code_Alt_Text = 'OVR{}.F2.R1.C5' | |
BRO_Code_Alt_Name_of_Coding_System = 'OVR{}.F2.R1.C6' | |
BRO_Code_Coding_System_Version = 'OVR{}.F2.R1.C7' | |
BRO_Code_Coding_System_Version_Alt = 'OVR{}.F2.R1.C8' | |
BRO_Code_Original_Text = 'OVR{}.F2.R1.C9' | |
Override_Comments = 'OVR{}.F3' | |
def get_segment_name() -> str: | |
return 'OVR' | |
def get_segment_title() -> str: | |
return 'Business Rule Override' | |
class Gt1Segment(Enum): | |
"""Guarantor Segment""" | |
Guarantor_Name = 'GT1{}.F3' | |
def get_segment_name() -> str: | |
return 'GT1' | |
def get_segment_title() -> str: | |
return 'Guarantor' | |
class Rf1Segment(Enum): | |
"""Referral Information Segment""" | |
Process_Date = 'RF1{}.F9' | |
def get_segment_name() -> str: | |
return 'RF1' | |
def get_segment_title() -> str: | |
return 'Referral Information' | |
class IvcSegment(Enum): | |
Provider_Tax_Id = 'IVC{}.F26' | |
def get_segment_name() -> str: | |
return 'IVC' | |
def get_segment_title() -> str: | |
return 'Invoice' | |
class OruSegment(Enum): | |
Set_ID = 'ORU.F1' | |
def get_segment_name() -> str: | |
return 'ORU' | |
def get_segment_title() -> str: | |
return 'ORU' | |
class OrnSegment(Enum): | |
Set_ID = 'ORN.F1' | |
def get_segment_name() -> str: | |
return 'ORN' | |
def get_segment_title() -> str: | |
return 'ORN' | |
class ZonSegment(Enum): | |
Zon_Flag = 'ZON.F1' | |
def get_segment_name() -> str: | |
return 'ZON' | |
def get_segment_title() -> str: | |
return 'ZON' | |
def parse_hl7(message): | |
# Parse the HL7 message using the hl7 library | |
parsed_message = hl7.parse(message) | |
# Loop through the segments in the message | |
for segment in parsed_message: | |
# Get the segment type | |
segment_type = segment[0] | |
# Get the field names for the segment type | |
field_names = get_segment_fields(segment_type) | |
# Loop through the fields in the segment | |
for i, field in enumerate(segment): | |
# Label the field with its corresponding field name | |
if i < len(field_names): | |
st.write(f"{field_names[i]}: {field}") | |
else: | |
st.write(f"Unknown field: {field}") | |
# Define the Streamlit app | |
def app(): | |
# Add a text input field for the HL7 message | |
hl7_message = st.text_area("Enter HL7 message here", value="MSH|^~\&|ANYSHARE^2.16.840.1.113883.1.2966.500.1.1.17.1.312.1|ABCCHHH|AnyCompanyHIE|ADX|20190408235621||ADT^A03|183000519^248647541|P|2.5.1\r") | |
# Parse the HL7 message and display the labeled fields | |
if hl7_message: | |
parse_hl7(hl7_message) | |
# if __name__ == "__main__": | |
if __name__ == '__main__': | |
app() | |
print(AdmitSource['PR'].value) | |
print(AdmitSource['HMO'].value) | |
for i in range(1, 10): | |
print(AdmitSource.get_value(str(i))) | |
print(AdmitSource.get_value('PR')) | |
print(AdmitSource.get_value('Emergency_Room')) | |