createCompositionVariables function
Map<String, dynamic>
createCompositionVariables(
- Map<String, dynamic> payload, {
- bool isUpdatingFHIRComposition = false,
})
Implementation
Map<String, dynamic> createCompositionVariables(Map<String, dynamic> payload,
{bool isUpdatingFHIRComposition = false}) {
final List<String> reviewOfSystemSectionItems = <String>[
'respiratory',
'peripheral',
'gastrointestinal',
'urinary',
'neurologic',
'hematologic',
'cardiac',
'heent',
'heenttwo',
'gi',
'gu',
'ms',
'skin',
'psychiatric',
'description'
];
final Composition _composition = Composition(
id: isUpdatingFHIRComposition ? payload['id']?.toString() : null,
status: CompositionStatusEnum.preliminary,
type: CodeableConcept(
text: 'Consult Note',
coding: <Coding>[
Coding(
system: 'http://loinc.org',
code: '11488-4',
display: 'Consult Note',
userSelected: false,
),
],
),
category: <CodeableConcept>[
CodeableConcept(
text: 'Consult Note',
coding: <Coding>[
Coding(
system: 'http://loinc.org',
code: '11488-4',
display: 'Consult Note',
userSelected: false,
),
],
)
],
subject: Reference(
reference: payload['patientRef']?.toString(),
type: 'Patient',
display: payload['patientName']?.toString(),
),
encounter: Reference(
reference: payload['encounterRef']?.toString(),
type: 'Encounter',
display: payload['encounterRef']?.toString(),
),
date: payload['dateRecorded']?.toString(),
author: <Reference>[
Reference(display: payload['recordingDoctor']?.toString()),
],
title: payload['compositionTitle']?.toString(),
section: <Section>[
if (payload['compositionTitle'] ==
CompositionTypeTitle.patientHistory.name)
Section(
title: 'patientHistory',
text: Narrative(
status: NarrativeStatusEnum.generated,
div: payload['patientHistory']?.toString(),
),
),
if (payload['compositionTitle'] ==
CompositionTypeTitle.generalExamination.name)
Section(
title: 'generalExam',
text: Narrative(
status: NarrativeStatusEnum.generated,
div: payload['generalExam']?.toString(),
),
),
if (payload['compositionTitle'] ==
CompositionTypeTitle.reviewOfSystems.name)
...reviewOfSystemSectionItems
.where((String title) => payload[title] != null)
.map(
(String e) => Section(
title: e,
text: Narrative(
status: NarrativeStatusEnum.generated,
div: payload[e]?.toString(),
),
),
)
.toList(),
],
);
return <String, dynamic>{'input': _composition.toJson()};
}