Skip to content

Commit

Permalink
Merge branch 'master' into snesm/loginV2
Browse files Browse the repository at this point in the history
  • Loading branch information
snesm authored Mar 6, 2024
2 parents 09971da + 00f9260 commit cf854f1
Show file tree
Hide file tree
Showing 9 changed files with 2,848 additions and 4 deletions.
94 changes: 94 additions & 0 deletions prime-router/settings/prod/0163-sc-onboarding-to-up-receiver.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
# To submit this to localhost, run:
#
# ./prime multiple-settings set --env prod --input ./settings/prod/0163-sc-onboarding-to-up-receiver.yml
---
- name: "sc-phd"
description: "South Carolina Public Health Department"
jurisdiction: "STATE"
stateCode: "SC"
countyName: null
filters: []
featureFlags: null
keys: null
senders: []
receivers:
- name: "full-elr"
organizationName: "sc-phd"
topic: "full-elr"
customerStatus: "inactive"
translation: !<HL7>
schemaName: "classpath:/metadata/hl7_mapping/receivers/STLTs/SC/SC-receiver-transform"
useTestProcessingMode: false
useBatchHeaders: true
receivingApplicationName: null
receivingApplicationOID: null
receivingFacilityName: null
receivingFacilityOID: null
messageProfileId: null
replaceValue: {}
replaceValueAwithB: {}
reportingFacilityName: null
reportingFacilityId: null
reportingFacilityIdType: null
suppressQstForAoe: false
suppressHl7Fields: null
suppressAoe: false
defaultAoeToUnknown: false
replaceUnicodeWithAscii: false
useBlankInsteadOfUnknown: null
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: "STANDARD"
receivingOrganization: null
convertPositiveDateTimeOffsetToNegative: false
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 = 'SC') or (Bundle.entry.resource.ofType(Patient).address.state = 'SC')"
qualityFilter:
- "Bundle.entry.resource.ofType(MessageHeader).id.exists()"
- "Bundle.entry.resource.ofType(Patient).birthDate.exists()"
- "Bundle.entry.resource.ofType(Patient).name.family.exists()"
- "Bundle.entry.resource.ofType(Patient).name.given.count() > 0"
- "Bundle.entry.resource.ofType(Specimen).type.exists()"
- "(Bundle.entry.resource.ofType(Patient).address.line.exists() or Bundle.entry.resource.ofType(Patient).address.postalCode.exists() or Bundle.entry.resource.ofType(Patient).telecom.exists())"
- "((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: []
mappedConditionFilter: []
deidentify: false
deidentifiedValue: ""
timing:
operation: "MERGE"
numberPerDay: 12
initialTime: "01:09"
timeZone: "EASTERN"
maxReportCount: 100
whenEmpty:
action: "NONE"
onlyOncePerDay: false
description: ""
transport: []
externalName: null
enrichmentSchemaNames: []
timeZone: null
dateTimeFormat: "OFFSET"
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
# To submit this to localhost, run:
#
# ./prime multiple-settings set --env staging --input ./settings/staging/0163-sc-onboarding-to-up-receiver.yml
---
- name: "sc-phd"
description: "South Carolina Public Health Department"
jurisdiction: "STATE"
stateCode: "SC"
countyName: null
filters: []
featureFlags: null
keys: null
senders: []
receivers:
- name: "full-elr"
organizationName: "sc-phd"
topic: "full-elr"
customerStatus: "inactive"
translation: !<HL7>
schemaName: "classpath:/metadata/hl7_mapping/receivers/STLTs/SC/SC-receiver-transform"
useTestProcessingMode: false
useBatchHeaders: true
receivingApplicationName: null
receivingApplicationOID: null
receivingFacilityName: null
receivingFacilityOID: null
messageProfileId: null
replaceValue: {}
replaceValueAwithB: {}
reportingFacilityName: null
reportingFacilityId: null
reportingFacilityIdType: null
suppressQstForAoe: false
suppressHl7Fields: null
suppressAoe: false
defaultAoeToUnknown: false
replaceUnicodeWithAscii: false
useBlankInsteadOfUnknown: null
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: "STANDARD"
receivingOrganization: null
convertPositiveDateTimeOffsetToNegative: false
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 = 'SC') or (Bundle.entry.resource.ofType(Patient).address.state = 'SC')"
qualityFilter:
- "Bundle.entry.resource.ofType(MessageHeader).id.exists()"
- "Bundle.entry.resource.ofType(Patient).birthDate.exists()"
- "Bundle.entry.resource.ofType(Patient).name.family.exists()"
- "Bundle.entry.resource.ofType(Patient).name.given.count() > 0"
- "Bundle.entry.resource.ofType(Specimen).type.exists()"
- "(Bundle.entry.resource.ofType(Patient).address.line.exists() or Bundle.entry.resource.ofType(Patient).address.postalCode.exists() or Bundle.entry.resource.ofType(Patient).telecom.exists())"
- "((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: []
mappedConditionFilter: []
deidentify: false
deidentifiedValue: ""
timing:
operation: "MERGE"
numberPerDay: 12
initialTime: "01:09"
timeZone: "EASTERN"
maxReportCount: 100
whenEmpty:
action: "NONE"
onlyOncePerDay: false
description: ""
transport: !<SFTP>
host: "172.17.6.20"
port: "22"
filePath: "./upload"
credentialName: null
type: "SFTP"
externalName: null
enrichmentSchemaNames: []
timeZone: null
dateTimeFormat: "OFFSET"
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,9 @@ object HL7MessageHelpers : Logging {
}
val time = DTM(null)
time.setValue(Date())

val hl7BatchFileHeaderEncodingChar: String? = "${firstMessage?.get("MSH-2") ?: hl7BatchHeaderEncodingChar}"

// The extraction of these values mimics how the COVID HL7 serializer works
var sendingApp =
"${firstMessage?.get("MSH-3-1") ?: REPORT_STREAM_APPLICATION_NAME}^" +
Expand All @@ -58,7 +61,7 @@ object HL7MessageHelpers : Logging {
val builder = StringBuilder()
if (useBatchHeaders) {
builder.append(
"FHS|$hl7BatchHeaderEncodingChar|" +
"FHS|$hl7BatchFileHeaderEncodingChar|" +
"$sendingApp|" +
"$sendingApp|" +
"$receivingApp|" +
Expand All @@ -67,7 +70,7 @@ object HL7MessageHelpers : Logging {
)
builder.append(hl7SegmentDelimiter)
builder.append(
"BHS|$hl7BatchHeaderEncodingChar|" +
"BHS|$hl7BatchFileHeaderEncodingChar|" +
"$sendingApp|" +
"$sendingApp|" +
"$receivingApp|" +
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
hl7Class: ca.uhn.hl7v2.model.v251.message.ORU_R01

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

elements:

- name: xtn-use-code-from-system
condition: '%resource.system = "email"'
value: [ '"NET"' ]
hl7Spec: [ '%{hl7TelecomPath}-2' ]

- name: sc-message-encoding-characters
condition: true
value: [ '"^~\\&#"' ]
hl7Spec: [ 'MSH-2' ]

- name: sc-name-of-the-receiving-application
condition: true
value: [ '"SCDOH"' ]
hl7Spec: [ 'MSH-5-1' ]

- name: sc-OID-of-the-receiving-application
condition: true
value: [ '"2.16.840.1.114222.4.3.2.2.1.179.1"' ]
hl7Spec: [ 'MSH-5-2' ]

- name: sc-indicates-that-5.2-is-an-OID
condition: true
value: [ '"ISO"' ]
hl7Spec: [ 'MSH-5-3' ]

- name: sc-receiving-facility-namespace-ID
condition: true
value: [ '"SC"' ]
hl7Spec: [ 'MSH-6-1' ]

- name: sc-receiving-facility-universal-ID
condition: true
value: [ '"2.16.840.1.114222.4.1.3680"' ]
hl7Spec: [ 'MSH-6-2' ]

- name: sc-receiving-facility-universal-ID-Type
condition: true
value: [ '"ISO"' ]
hl7Spec: [ 'MSH-6-3' ]

- name: sc-country-code
condition: true
value: [ '""' ]
hl7Spec: [ 'MSH-17' ]

- name: sc-character-set
condition: true
value: [ '""' ]
hl7Spec: [ 'MSH-18' ]

- name: sc-character-set-1
condition: true
value: [ '""' ]
hl7Spec: [ 'MSH-19' ]

- name: sc-character-set-2
condition: true
value: [ '""' ]
hl7Spec: [ 'MSH-19-2' ]

- name: sc-character-set-3
condition: true
value: [ '""' ]
hl7Spec: [ 'MSH-19-3' ]

- name: sc-patient-name-type-code
condition: true
value: [ '""' ]
hl7Spec: [ /PATIENT_RESULT/PATIENT/PID-5-7 ]

- name: sc-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' ]
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
---
- name: "sc-phd"
description: "South Carolina Public Health Department"
jurisdiction: "STATE"
stateCode: "SC"
countyName: null
filters: []
featureFlags: null
keys: null
senders: []
receivers:
- name: "full-elr"
organizationName: "sc-phd"
topic: "full-elr"
customerStatus: "active"
translation: !<HL7>
schemaName: "classpath:/metadata/hl7_mapping/receivers/STLTs/SC/SC-receiver-transform"
useTestProcessingMode: false
useBatchHeaders: true
receivingApplicationName: null
receivingApplicationOID: null
receivingFacilityName: null
receivingFacilityOID: null
messageProfileId: null
replaceValue: {}
replaceValueAwithB: {}
reportingFacilityName: null
reportingFacilityId: null
reportingFacilityIdType: null
suppressQstForAoe: false
suppressHl7Fields: null
suppressAoe: false
defaultAoeToUnknown: false
replaceUnicodeWithAscii: false
useBlankInsteadOfUnknown: null
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: "STANDARD"
receivingOrganization: null
convertPositiveDateTimeOffsetToNegative: false
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 = 'SC') or (Bundle.entry.resource.ofType(Patient).address.state = 'SC')"
qualityFilter:
- "Bundle.entry.resource.ofType(MessageHeader).id.exists()"
- "Bundle.entry.resource.ofType(Patient).birthDate.exists()"
- "Bundle.entry.resource.ofType(Patient).name.family.exists()"
- "Bundle.entry.resource.ofType(Patient).name.given.count() > 0"
- "Bundle.entry.resource.ofType(Specimen).type.exists()"
- "(Bundle.entry.resource.ofType(Patient).address.line.exists() or Bundle.entry.resource.ofType(Patient).address.postalCode.exists() or Bundle.entry.resource.ofType(Patient).telecom.exists())"
- "((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: []
mappedConditionFilter: []
deidentify: false
deidentifiedValue: ""
timing:
operation: "MERGE"
numberPerDay: 12
initialTime: "01:09"
timeZone: "EASTERN"
maxReportCount: 100
whenEmpty:
action: "NONE"
onlyOncePerDay: false
description: ""
transport: []
externalName: null
enrichmentSchemaNames: []
timeZone: null
dateTimeFormat: "OFFSET"
Loading

0 comments on commit cf854f1

Please sign in to comment.