Replace ComponentSourceType with general SourceType
This commit is contained in:
@@ -41,6 +41,29 @@ impl TryFrom<&String> for SourceType {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl SourceType {
|
||||||
|
fn from_component_source_type(value: &str) -> anyhow::Result<Self> {
|
||||||
|
match value {
|
||||||
|
"CD" => Ok(SourceType::CodingDiagnosis),
|
||||||
|
"CP" => Ok(SourceType::CodingProcedure),
|
||||||
|
"E" => Ok(SourceType::Encounter),
|
||||||
|
"P" => Ok(SourceType::Patient),
|
||||||
|
"R" => Ok(SourceType::Revenue),
|
||||||
|
"S" => Ok(SourceType::Service),
|
||||||
|
"T" => Ok(SourceType::Transfer),
|
||||||
|
"EC" => Ok(SourceType::Encounter),
|
||||||
|
"CDX" => Ok(SourceType::CodingDiagnosis),
|
||||||
|
"CPX" => Ok(SourceType::CodingProcedure),
|
||||||
|
"EX" => Ok(SourceType::Encounter),
|
||||||
|
"PX" => Ok(SourceType::Patient),
|
||||||
|
"RX" => Ok(SourceType::Revenue),
|
||||||
|
"SX" => Ok(SourceType::Service),
|
||||||
|
"TX" => Ok(SourceType::Transfer),
|
||||||
|
_ => bail!("Invalid ComponentSourceType found: {}", value),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Hash, PartialEq, PartialOrd)]
|
#[derive(Hash, PartialEq, PartialOrd)]
|
||||||
pub enum FilterType {
|
pub enum FilterType {
|
||||||
Equal,
|
Equal,
|
||||||
@@ -78,48 +101,10 @@ pub enum ExtraType {
|
|||||||
Transfer,
|
Transfer,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(PartialEq)]
|
|
||||||
pub enum ComponentSourceType {
|
|
||||||
CodingDiagnosis,
|
|
||||||
CodingProcedure,
|
|
||||||
Encounter,
|
|
||||||
Patient,
|
|
||||||
Revenue,
|
|
||||||
Service,
|
|
||||||
Transfer,
|
|
||||||
Extra(ExtraType),
|
|
||||||
Classification,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl TryFrom<&str> for ComponentSourceType {
|
|
||||||
type Error = anyhow::Error;
|
|
||||||
|
|
||||||
fn try_from(value: &str) -> Result<Self, Self::Error> {
|
|
||||||
match value {
|
|
||||||
"CD" => Ok(ComponentSourceType::CodingDiagnosis),
|
|
||||||
"CP" => Ok(ComponentSourceType::CodingProcedure),
|
|
||||||
"E" => Ok(ComponentSourceType::Encounter),
|
|
||||||
"P" => Ok(ComponentSourceType::Patient),
|
|
||||||
"R" => Ok(ComponentSourceType::Revenue),
|
|
||||||
"S" => Ok(ComponentSourceType::Service),
|
|
||||||
"T" => Ok(ComponentSourceType::Transfer),
|
|
||||||
"EC" => Ok(ComponentSourceType::Classification),
|
|
||||||
"CDX" => Ok(ComponentSourceType::Extra(ExtraType::CodingDiagnosis)),
|
|
||||||
"CPX" => Ok(ComponentSourceType::Extra(ExtraType::CodingProcedure)),
|
|
||||||
"EX" => Ok(ComponentSourceType::Extra(ExtraType::Encounter)),
|
|
||||||
"PX" => Ok(ComponentSourceType::Extra(ExtraType::Patient)),
|
|
||||||
"RX" => Ok(ComponentSourceType::Extra(ExtraType::Revenue)),
|
|
||||||
"SX" => Ok(ComponentSourceType::Extra(ExtraType::Service)),
|
|
||||||
"TX" => Ok(ComponentSourceType::Extra(ExtraType::Transfer)),
|
|
||||||
_ => bail!("Invalid ComponentSourceType found: {}", value),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub enum Component {
|
pub enum Component {
|
||||||
Constant(String),
|
Constant(String),
|
||||||
// File, column_name
|
// File, column_name
|
||||||
Field(String, String),
|
Field(SourceType, String),
|
||||||
}
|
}
|
||||||
|
|
||||||
// Frequency per type:
|
// Frequency per type:
|
||||||
@@ -345,10 +330,10 @@ where
|
|||||||
Component::Constant(record.get("ComponentValueOrField").unwrap().to_owned())
|
Component::Constant(record.get("ComponentValueOrField").unwrap().to_owned())
|
||||||
}
|
}
|
||||||
source => {
|
source => {
|
||||||
let component_source_type = ComponentSourceType::try_from(source)?;
|
let component_source_type = SourceType::from_component_source_type(source)?;
|
||||||
Component::Field(
|
Component::Field(
|
||||||
// TODO: Figure this out, should be determined from the source type
|
// TODO: Figure this out, should be determined from the source type
|
||||||
"".to_owned(),
|
component_source_type,
|
||||||
// TODO: Field probably needs to be enumed to match onto the correct column in input files
|
// TODO: Field probably needs to be enumed to match onto the correct column in input files
|
||||||
record.get("ComponentValueOrField").unwrap().to_owned(),
|
record.get("ComponentValueOrField").unwrap().to_owned(),
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user