Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Custom Validation for CSV Fields #502

Open
megin1989 opened this issue Jun 28, 2024 · 2 comments
Open

Custom Validation for CSV Fields #502

megin1989 opened this issue Jun 28, 2024 · 2 comments

Comments

@megin1989
Copy link

How can I perform custom validation on a CSV file?

Example:
Validate that all combinations of the ENCOUNTER_CLASS_CODE and ENCOUNTER_CLASS_CODE_DESCRIPTION fields in the primary CSV file exactly match the data given in the validation file. The check should ensure that each pair of ENCOUNTER_CLASS_CODE and ENCOUNTER_CLASS_CODE_DESCRIPTION in the primary CSV exists in the validation .CSVS file using regular expressions.

version 1.0
@totalColumns 2
@Separator ','
ENCOUNTER_CLASS_CODE: regex("(?i)^(AMB|EMER|FLD|HH|IMP|ACUTE|NONAC|OBSENC|PRENC|SS|VR)$")
ENCOUNTER_CLASS_CODE_DESCRIPTION: regex("(?i)^(ambulatory|emergency|field|home health|inpatient encounter|inpatient acute|inpatient non-acute|observation encounter|pre-admission|short stay|virtual)$")

@DavidUnderdown
Copy link

There's no need to use regex. I would use the any on ENCOUNTER_CLASS_CODE and switch schema rules with is on ENCOUNTER_CLASS_CODE_DESCRIPTION. Use version 1.1 or higher rather than 1.0

version 1.1
@totalColumns 2
@Separator ','
ENCOUNTER_CLASS_CODE: any("AMB","EMER","FLD","HH","IMP","ACUTE","NONAC","OBSENC","PRENC","SS","VR")
ENCOUNTER_CLASS_CODE_DESCRIPTION: switch(($ENCOUNTER_CLASS_CODE\is("AMB"),is("ambulatory")),($ENCOUNTER_CLASS_CODE\is("EMER"),is("emergency")),($ENCOUNTER_CLASS_CODE\is("FLD"),is("field")),($ENCOUNTER_CLASS_CODE\is("HH"),is("home")), ($ENCOUNTER_CLASS_CODE\is("IMP"),is("inpatient encounter")),($ENCOUNTER_CLASS_CODE\is("ACUTE"),is("inpatient acute")),($ENCOUNTER_CLASS_CODE\is("ACUTE"),is("inpatient non-acute")),($ENCOUNTER_CLASS_CODE\is("OBSENC"),is("observation encounter")),($ENCOUNTER_CLASS_CODE\is("PRENC"),is("pre-admission")),($ENCOUNTER_CLASS_CODE\is("SS"),is("short stay"),($ENCOUNTER_CLASS_CODE\is("VR"), is("virtual")))

should do what you're after if I've understood you correctly.

@megin1989
Copy link
Author

megin1989 commented Jul 1, 2024

Thank you for the information. I also need to consider case sensitivity in this validation. The CSV files I receive may not be case-sensitive.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants