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

Engagement/jessica/14883 oh pre migration #15256

Merged
merged 18 commits into from
Aug 1, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
199 changes: 199 additions & 0 deletions prime-router/settings/STLTs/OH/oh-doh.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,199 @@
- name: "oh-doh"
description: "Ohio Department of Health"
jurisdiction: "STATE"
stateCode: "OH"
countyName: null
filters:
- topic: "covid-19"
jurisdictionalFilter: []
qualityFilter: null
routingFilter: []
processingModeFilter: null
conditionFilter: null
mappedConditionFilter: null
featureFlags: []
keys: []
senders: []
receivers:
- name: "full-elr"
organizationName: "oh-doh"
topic: "full-elr"
customerStatus: "active"
translation:
schemaName: "azure:/hl7_mapping/receivers/STLTs/OH/OH-receiver-transform.yml"
useTestProcessingMode: false
useBatchHeaders: true
receivingApplicationName: "OHDOH^2.16.840.1.114222.4.1.3674^ISO"
receivingApplicationOID: "2.16.840.1.114222.4.1.3674"
receivingFacilityName: "OHDOH^2.16.840.1.114222.4.1.3674^ISO"
receivingFacilityOID: "2.16.840.1.114222.4.1.3674"
messageProfileId: null
replaceValue: {}
replaceValueAwithB: {}
reportingFacilityName: "CDC PRIME"
reportingFacilityId: "36DSMP9999"
reportingFacilityIdType: null
suppressQstForAoe: true
suppressHl7Fields: "OBX-23-11, MSH-19-1, MSH-19-2, MSH-19-3"
suppressAoe: false
defaultAoeToUnknown: false
replaceUnicodeWithAscii: false
useBlankInsteadOfUnknown: "patient_race"
truncateHDNamespaceIds: false
truncateHl7Fields: null
usePid14ForPatientEmail: false
convertTimestampToDateTime: null
cliaForOutOfStateTesting: null
cliaForSender: {}
phoneNumberFormatting: "STANDARD"
suppressNonNPI: false
processingModeCode: null
replaceDiiWithOid: null
applyOTCDefault: false
useOrderingFacilityName: "STANDARD"
valueSetOverrides: {}
nameFormat: "OHIO"
receivingOrganization: null
convertPositiveDateTimeOffsetToNegative: true
oslynn marked this conversation as resolved.
Show resolved Hide resolved
stripInvalidCharsRegex: null
convertDateTimesToReceiverLocalTime: false
useHighPrecisionHeaderDateTimeFormat: false
type: "HL7"
truncationConfig:
truncateHDNamespaceIds: false
truncateHl7Fields: []
customLengthHl7Fields: {}
jurisdictionalFilter:
- "(Bundle.entry.resource.ofType(ServiceRequest)[0].requester.resolve().organization.resolve().address.state = 'OH') or (Bundle.entry.resource.ofType(Patient).address.state = 'OH')"
qualityFilter:
# Message id is not empty (MSH-10)
- "Bundle.identifier.value.exists()"
- "Bundle.entry.resource.ofType(Patient).name.family.exists()"
- "Bundle.entry.resource.ofType(Patient).name.given.count() > 0"
- "Bundle.entry.resource.ofType(Patient).birthDate.exists()"
# Specimen type (SPM-4) is not empty
- "Bundle.entry.resource.ofType(Specimen).where(type.empty()).count() = 0"
# Patient has at least a street address(PID-11-1), postal code (PID-11-5),phone(PID-13) or email(PID-13-4)
- "Bundle.entry.resource.ofType(Patient).where(address.line[0].empty() and address.postalCode.empty() and telecom.where(system = 'phone').value.empty() and telecom.where(system = 'email').value.empty()).count() = 0"
- "((Bundle.entry.resource.ofType(Specimen).collection.collectedPeriod.exists() or Bundle.entry.resource.ofType(Specimen).collection.collected.exists())
or (Bundle.entry.resource.ofType(ServiceRequest).occurrence.exists() or Bundle.entry.resource.ofType(Observation).effective.exists()))"
routingFilter: []
processingModeFilter: []
reverseTheQualityFilter: false
conditionFilter:
# Accept COVID only
- "%resource.interpretation.coding.code = 'A' and (%resource.code.coding.extension('https://reportstream.cdc.gov/fhir/StructureDefinition/condition-code').value.where(code in ('840539006')).exists())"
mappedConditionFilter: []
deidentify: false
deidentifiedValue: ""
timing:
operation: "MERGE"
numberPerDay: 12
initialTime: "01:35"
timeZone: "EASTERN"
maxReportCount: 100
whenEmpty:
action: "NONE"
onlyOncePerDay: false
description: ""
transport:
type: SFTP
host: sftp
port: 22
filePath: ./upload
credentialName: DEFAULT-SFTP
externalName: null
enrichmentSchemaNames: []
timeZone: null
dateTimeFormat: "OFFSET"
- name: "full-elr-secondary"
oslynn marked this conversation as resolved.
Show resolved Hide resolved
organizationName: "oh-doh"
topic: "full-elr"
customerStatus: "active"
translation:
schemaName: "azure:/hl7_mapping/receivers/STLTs/OH/OH-receiver-transform.yml"
useTestProcessingMode: false
useBatchHeaders: true
receivingApplicationName: "OHDOH^2.16.840.1.114222.4.1.3674^ISO"
receivingApplicationOID: "2.16.840.1.114222.4.1.3674"
receivingFacilityName: "OHDOH^2.16.840.1.114222.4.1.3674^ISO"
receivingFacilityOID: "2.16.840.1.114222.4.1.3674"
messageProfileId: null
replaceValue: {}
replaceValueAwithB: {}
reportingFacilityName: "CDC PRIME"
reportingFacilityId: "36DSMP9999"
reportingFacilityIdType: null
suppressQstForAoe: true
suppressHl7Fields: "OBX-23-11, MSH-19-1, MSH-19-2, MSH-19-3"
suppressAoe: false
defaultAoeToUnknown: false
replaceUnicodeWithAscii: false
useBlankInsteadOfUnknown: "patient_race"
truncateHDNamespaceIds: false
truncateHl7Fields: null
usePid14ForPatientEmail: false
convertTimestampToDateTime: null
cliaForOutOfStateTesting: null
cliaForSender: {}
phoneNumberFormatting: "STANDARD"
suppressNonNPI: false
processingModeCode: null
replaceDiiWithOid: null
applyOTCDefault: false
useOrderingFacilityName: "STANDARD"
valueSetOverrides: {}
nameFormat: "OHIO"
receivingOrganization: null
convertPositiveDateTimeOffsetToNegative: true
stripInvalidCharsRegex: null
convertDateTimesToReceiverLocalTime: false
useHighPrecisionHeaderDateTimeFormat: false
type: "HL7"
truncationConfig:
truncateHDNamespaceIds: false
truncateHl7Fields: []
customLengthHl7Fields: {}
jurisdictionalFilter:
- "(Bundle.entry.resource.ofType(ServiceRequest)[0].requester.resolve().organization.resolve().address.state = 'OH') or (Bundle.entry.resource.ofType(Patient).address.state = 'OH')"
qualityFilter:
# Message id is not empty (MSH-10)
- "Bundle.identifier.value.exists()"
- "Bundle.entry.resource.ofType(Patient).name.family.exists()"
- "Bundle.entry.resource.ofType(Patient).name.given.count() > 0"
- "Bundle.entry.resource.ofType(Patient).birthDate.exists()"
# Specimen type (SPM-4) is not empty
- "Bundle.entry.resource.ofType(Specimen).where(type.empty()).count() = 0"
# Patient has at least a street address(PID-11-1), postal code (PID-11-5),phone(PID-13) or email(PID-13-4)
- "Bundle.entry.resource.ofType(Patient).where(address.line[0].empty() and address.postalCode.empty() and telecom.where(system = 'phone').value.empty() and telecom.where(system = 'email').value.empty()).count() = 0"
- "((Bundle.entry.resource.ofType(Specimen).collection.collectedPeriod.exists() or Bundle.entry.resource.ofType(Specimen).collection.collected.exists())
or (Bundle.entry.resource.ofType(ServiceRequest).occurrence.exists() or Bundle.entry.resource.ofType(Observation).effective.exists()))"
routingFilter: []
processingModeFilter: []
reverseTheQualityFilter: true
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder, how are we going to handle reverseTheQualityFilter: true?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought this was something that was implemented and working. Is it not @victor-chaparro ?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is working in the UP

conditionFilter:
# Accept COVID only
- "Bundle.entry.resource.ofType(Observation).interpretation.coding.code = 'A' and (%resource.code.coding.extension('https://reportstream.cdc.gov/fhir/StructureDefinition/condition-code').value.where(code in ('840539006')).exists())"
mappedConditionFilter: []
deidentify: false
deidentifiedValue: ""
timing:
operation: "MERGE"
numberPerDay: 12
initialTime: "01:35"
timeZone: "EASTERN"
maxReportCount: 100
whenEmpty:
action: "NONE"
onlyOncePerDay: false
description: ""
transport:
type: SFTP
host: sftp
port: 22
filePath: ./upload
credentialName: DEFAULT-SFTP
externalName: null
enrichmentSchemaNames: []
timeZone: null
dateTimeFormat: "OFFSET"
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
constants:
OBX: '/PATIENT_RESULT/ORDER_OBSERVATION/OBSERVATION(%{resultIndex})/OBX'

elements:
- name: oh-suppress-qst-for-aoe
value: [ '""' ]
hl7Spec: [ '%{OBX}-29' ]
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
hl7Class: ca.uhn.hl7v2.model.v251.message.ORU_R01

extends: classpath:/metadata/hl7_mapping/ORU_R01/ORU_R01-base.yml

constants:
MSH: '/MSH'
OBX: '/PATIENT_RESULT/ORDER_OBSERVATION/OBSERVATION/OBX'

elements:
- name: oh-patient-race-coding-system
resource: 'Bundle.entry.resource.ofType(Patient).extension("http://ibm.com/fhir/cdm/StructureDefinition/local-race-cd").value.coding'
condition: '%resource.code.exists()'
value: [ '%resource.system.getCodingSystemMapping()' ]
hl7Spec: [ '/PATIENT_RESULT/PATIENT/PID-10-3' ]

- name: oh-sending-application-namespace-id
value: [ '"CDC PRIME - Atlanta, Georgia (Dekalb)"' ]
hl7Spec: [ '%{MSH}-3-1' ]

- name: oh-sending-application-universal-id
value: [ '"2.16.840.1.114222.4.1.237821"' ]
hl7Spec: [ '%{MSH}-3-2' ]

- name: oh-sending-application-universal-id-type
value: [ '"ISO"' ]
hl7Spec: [ '%{MSH}-3-3' ]

- name: oh-sending-facility-namespace-id
value: [ '"CDC PRIME"' ]
hl7Spec: [ '%{MSH}-4-1' ]

- name: oh-sending-application-universal-id
value: [ '"36DSMP9999"' ]
hl7Spec: [ '%{MSH}-4-2' ]

- name: oh-receiving-application-namespace-id
value: [ '"OHDOH"' ]
hl7Spec: [ '%{MSH}-5-1' ]

- name: oh-receiving-application-universal-id
value: [ '"2.16.840.1.114222.4.1.3674"' ]
hl7Spec: [ '%{MSH}-5-2' ]

- name: oh-receiving-application-universal-id-type
value: [ '"ISO"' ]
hl7Spec: [ '%{MSH}-5-3' ]

- name: oh-receiving-facility-namespace-id
value: [ '"OHDOH"' ]
hl7Spec: [ '%{MSH}-6-1' ]

- name: oh-receiving-facility-universal-id
value: [ '"2.16.840.1.114222.4.1.3674"' ]
hl7Spec: [ '%{MSH}-6-2' ]

- name: oh-receiving-facility-universal-id-type
value: [ '"ISO"' ]
hl7Spec: [ '%{MSH}-6-3' ]

- name: oh-unwanted-fields
value: [ '""' ]
hl7Spec: [ '%{MSH}-19-1', '%{MSH}-19-2', '%{MSH}-19-3' ]

- name: oh-race-unknown-as-blank
resource: 'Bundle.entry.resource.ofType(Patient).extension("http://ibm.com/fhir/cdm/StructureDefinition/local-race-cd")'
condition: '%resource.value[x].coding[0].code = "UNK" or %resource.value.coding[0].code = "ASKU"'
value: [ '""' ]
hl7Spec: [ '%{PID}-10-1' , '%{PID}-10-2' , '%{PID}-10-3' , '%{PID}-10-7' , '%{PID}-10-9' ]

- name: oh-observation
resource: Bundle.entry.resource.ofType(Observation)
condition: 'Bundle.entry.resource.ofType(Observation).code.coding.extension("https://reportstream.cdc.gov/fhir/StructureDefinition/condition-code").value.code = "AOE"'
schema: classpath:/metadata/hl7_mapping/receivers/STLTs/OH/OH-observation-fields.yml
resourceIndex: resultIndex
Loading
Loading