Skip to content

Commit 6423344

Browse files
squashes header arrays and updates types
1 parent 116421a commit 6423344

12 files changed

Lines changed: 62 additions & 46 deletions

File tree

packages/coordinator/src/routes/util.ts

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import * as LosslessJson from "lossless-json"
55
import axios from "axios"
66
import stream from "stream"
77
import {translateToFhir} from "../services/translation/response"
8-
import {getShowValidationWarnings, RequestHeaders} from "../utils/headers"
8+
import {collapseHeaderArrays, getShowValidationWarnings, RequestHeaders} from "../utils/headers"
99
import {getPayloadIdentifiers} from "./logging"
1010
import {
1111
isBundle,
@@ -60,12 +60,13 @@ export async function handleResponse<T>(
6060
}
6161
}
6262

63-
function extractTraceIds(headers: Hapi.Utils.Dictionary<string>): Record<string, string> {
63+
function extractTraceIds(headers: Hapi.InternalRequestDefaults["Headers"]): Record<string, string> {
64+
const collapsedHeaders = collapseHeaderArrays(headers)
6465
return {
65-
"x-request-id": headers["x-request-id"] || headers["nhsd-request-id"],
66-
"x-amzn-trace-id": headers["x-amzn-trace-id"],
67-
"nhsd-correlation-id": headers["nhsd-correlation-id"],
68-
"nhsd-request-id": headers["nhsd-request-id"]
66+
"x-request-id": collapsedHeaders["x-request-id"]! || collapsedHeaders["nhsd-request-id"]!,
67+
"x-amzn-trace-id": collapsedHeaders["x-amzn-trace-id"]!,
68+
"nhsd-correlation-id": collapsedHeaders["nhsd-correlation-id"]!,
69+
"nhsd-request-id": collapsedHeaders["nhsd-request-id"]!
6970
}
7071
}
7172

@@ -84,7 +85,7 @@ const getCircularReplacer = () => {
8485

8586
export async function callFhirValidator(
8687
payload: HapiPayload,
87-
requestHeaders: Hapi.Utils.Dictionary<string>,
88+
requestHeaders: Hapi.InternalRequestDefaults["Headers"],
8889
logger: pino.Logger = null
8990
): Promise<fhir.OperationOutcome> {
9091
// Payload is already normalised if it went through externalValidator or getPayload

packages/coordinator/src/services/communication/ebxml-request-builder.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ export function addEbXmlWrapper(spineRequest: spine.SpineRequest): string {
6767
*/
6868
export function toSpineRequest<T>(
6969
sendMessagePayload: hl7V3.SendMessagePayload<T>,
70-
headers: Hapi.Utils.Dictionary<string>,
70+
headers: Hapi.InternalRequestDefaults["Headers"],
7171
messageId?: string
7272
): spine.SpineRequest {
7373
const requestId = getRequestId(headers)

packages/coordinator/src/services/communication/tracker111/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@ export interface TrackerClient {
1111
businessStatus: string,
1212
earliestDate: string,
1313
latestDate: string,
14-
headers: Hapi.Utils.Dictionary<string>,
14+
headers: Hapi.InternalRequestDefaults["Headers"],
1515
logger: pino.Logger
1616
): Promise<spine.SummaryTrackerResponse>
1717
getPrescriptionById(
1818
prescriptionId: string,
19-
headers: Hapi.Utils.Dictionary<string>,
19+
headers: Hapi.InternalRequestDefaults["Headers"],
2020
logger: pino.Logger
2121
): Promise<spine.DetailTrackerResponse>
2222
}

packages/coordinator/src/services/translation/request/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ export function isRepeatDispensing(medicationRequests: Array<fhir.MedicationRequ
129129

130130
export async function convertPrescriptionBundleToSpineRequest(
131131
bundle: fhir.Bundle,
132-
headers: Hapi.Utils.Dictionary<string>,
132+
headers: Hapi.InternalRequestDefaults["Headers"],
133133
logger: pino.Logger
134134
): Promise<{spineRequest: spine.SpineRequest, parentPrescription: hl7V3.ParentPrescription}> {
135135
const messageId = getBundleIdentifierValue(bundle)

packages/coordinator/src/services/translation/request/payload/factory.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ export abstract class SendMessagePayloadFactory {
6666

6767
public createSendMessagePayload(
6868
fhirResource: FactoryInput,
69-
headers: Hapi.Utils.Dictionary<string>,
69+
headers: Hapi.InternalRequestDefaults["Headers"],
7070
logger: pino.Logger
7171
): hl7V3.SendMessagePayload<PayloadContent> {
7272
this.logIdentifiers(fhirResource, logger)

packages/coordinator/src/services/translation/request/payload/index.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import * as requestBuilder from "../../../communication/ebxml-request-builder"
66

77
async function convertBundleToSpineRequest(
88
bundle: fhir.Bundle,
9-
headers: Hapi.Utils.Dictionary<string>,
9+
headers: Hapi.InternalRequestDefaults["Headers"],
1010
logger: pino.Logger
1111
): Promise<spine.SpineRequest> {
1212
const factory = SendMessagePayloadFactory.forBundle()
@@ -16,7 +16,7 @@ async function convertBundleToSpineRequest(
1616

1717
function convertClaimToSpineRequest(
1818
claim: fhir.Claim,
19-
headers: Hapi.Utils.Dictionary<string>,
19+
headers: Hapi.InternalRequestDefaults["Headers"],
2020
logger: pino.Logger
2121
): spine.SpineRequest {
2222
const factory = SendMessagePayloadFactory.forClaim()
@@ -26,7 +26,7 @@ function convertClaimToSpineRequest(
2626

2727
function convertParametersToSpineRequest(
2828
parameters: fhir.Parameters,
29-
headers: Hapi.Utils.Dictionary<string>,
29+
headers: Hapi.InternalRequestDefaults["Headers"],
3030
logger: pino.Logger
3131
): spine.SpineRequest {
3232
const factory = SendMessagePayloadFactory.forParameters()
@@ -36,7 +36,7 @@ function convertParametersToSpineRequest(
3636

3737
function convertTaskToSpineRequest(
3838
task: fhir.Task,
39-
headers: Hapi.Utils.Dictionary<string>,
39+
headers: Hapi.InternalRequestDefaults["Headers"],
4040
logger: pino.Logger
4141
): spine.SpineRequest {
4242
const factory = SendMessagePayloadFactory.forTask()

packages/coordinator/src/services/translation/request/payload/message.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import Hapi from "@hapi/hapi"
77
export function createSendMessagePayload<T>(
88
messageId: string,
99
interactionId: hl7V3.Hl7InteractionIdentifier,
10-
headers: Hapi.Utils.Dictionary<string>,
10+
headers: Hapi.InternalRequestDefaults["Headers"],
1111
subject: T
1212
): hl7V3.SendMessagePayload<T> {
1313
const fromAsid = getAsid(headers)
@@ -31,7 +31,7 @@ function createCommunicationFunction(asid: string) {
3131
}
3232

3333
function createControlActEvent<T>(
34-
headers: Hapi.Utils.Dictionary<string>,
34+
headers: Hapi.InternalRequestDefaults["Headers"],
3535
subject: T
3636
) {
3737
const sdsUniqueIdentifier = getSdsUserUniqueId(headers)

packages/coordinator/src/services/translation/request/return/payload/return-payload-factory.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ type ReturnProposal = DispenseProposalReturnRoot
88
export interface ReturnPayloadFactory {
99
createPayload(
1010
returnProposal: ReturnProposal,
11-
requestHeaders: Hapi.Utils.Dictionary<string>
11+
requestHeaders: Hapi.InternalRequestDefaults["Headers"]
1212
): hl7V3.SendMessagePayload<ReturnProposal>
1313
}
1414

packages/coordinator/src/services/translation/response/index.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@ const spineResponseHandlers : Array<SpineResponseHandler<unknown>> = [
2222
RELEASE_REJECTION_HANDLER
2323
]
2424

25-
export function createReleaseHandlers(requestHeaders: Hapi.Utils.Dictionary<string>) : Array<ReleaseResponseHandler> {
25+
export function createReleaseHandlers(
26+
requestHeaders: Hapi.InternalRequestDefaults["Headers"]
27+
) : Array<ReleaseResponseHandler> {
2628
const NOMINATED_RELEASE_RESPONSE_HANDLER = new ReleaseResponseHandler(
2729
"PORX_IN070101UK31",
2830
new DispensePropsalReturnHandler(requestHeaders,
@@ -42,7 +44,7 @@ export function createReleaseHandlers(requestHeaders: Hapi.Utils.Dictionary<stri
4244
export async function translateToFhir<T>(
4345
hl7Message: spine.SpineDirectResponse<T>,
4446
logger: pino.Logger,
45-
requestHeaders: Hapi.Utils.Dictionary<string>): Promise<TranslatedSpineResponse> {
47+
requestHeaders: Hapi.InternalRequestDefaults["Headers"]): Promise<TranslatedSpineResponse> {
4648
const responseHandlers = [...createReleaseHandlers(requestHeaders), ...spineResponseHandlers]
4749
const bodyString = hl7Message.body.toString()
4850

packages/coordinator/src/services/translation/response/spine-return-handler.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,12 @@ export interface SpineReturnHandler {
1515

1616
export class DispensePropsalReturnHandler implements SpineReturnHandler {
1717

18-
private readonly requestHeaders : Hapi.Utils.Dictionary<string>
18+
private readonly requestHeaders : Hapi.InternalRequestDefaults["Headers"]
1919
private readonly payloadFactory: ReturnPayloadFactory
2020
private readonly spineClient: SpineClient
2121

2222
constructor(
23-
headers: Hapi.Utils.Dictionary<string>,
23+
headers: Hapi.InternalRequestDefaults["Headers"],
2424
returnPayloadFactory: ReturnPayloadFactory,
2525
spineClient : SpineClient) {
2626
this.requestHeaders = headers

0 commit comments

Comments
 (0)