make sure the patient summary is exported in a specific order.
This commit is contained in:
parent
af1c033a5c
commit
d700a1e4e0
|
@ -11,6 +11,7 @@ type InstallationVerificationStatus string
|
||||||
type InstallationQuotaStatus string
|
type InstallationQuotaStatus string
|
||||||
|
|
||||||
type IPSSections string
|
type IPSSections string
|
||||||
|
type IPSSectionGroups string
|
||||||
|
|
||||||
const (
|
const (
|
||||||
ResourceListPageSize int = 20
|
ResourceListPageSize int = 20
|
||||||
|
@ -67,6 +68,10 @@ const (
|
||||||
IPSSectionsPlanOfCare IPSSections = "plan_of_care"
|
IPSSectionsPlanOfCare IPSSections = "plan_of_care"
|
||||||
IPSSectionsFunctionalStatus IPSSections = "functional_status"
|
IPSSectionsFunctionalStatus IPSSections = "functional_status"
|
||||||
IPSSectionsAdvanceDirectives IPSSections = "advance_directives"
|
IPSSectionsAdvanceDirectives IPSSections = "advance_directives"
|
||||||
|
|
||||||
|
IPSSectionGroupsRequired IPSSectionGroups = "required"
|
||||||
|
IPSSectionGroupsRecommended IPSSectionGroups = "recommended"
|
||||||
|
IPSSectionGroupsOptional IPSSectionGroups = "optional"
|
||||||
)
|
)
|
||||||
|
|
||||||
var IPSSectionsList = []IPSSections{
|
var IPSSectionsList = []IPSSections{
|
||||||
|
@ -85,3 +90,26 @@ var IPSSectionsList = []IPSSections{
|
||||||
IPSSectionsFunctionalStatus,
|
IPSSectionsFunctionalStatus,
|
||||||
IPSSectionsAdvanceDirectives,
|
IPSSectionsAdvanceDirectives,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var IPSSectionGroupsOrdered = map[IPSSectionGroups][]IPSSections{
|
||||||
|
IPSSectionGroupsRequired: []IPSSections{
|
||||||
|
IPSSectionsMedicationSummary,
|
||||||
|
IPSSectionsAllergiesIntolerances,
|
||||||
|
IPSSectionsProblemList,
|
||||||
|
},
|
||||||
|
IPSSectionGroupsRecommended: []IPSSections{
|
||||||
|
IPSSectionsImmunizations,
|
||||||
|
IPSSectionsHistoryOfProcedures,
|
||||||
|
IPSSectionsMedicalDevices,
|
||||||
|
IPSSectionsDiagnosticResults,
|
||||||
|
},
|
||||||
|
IPSSectionGroupsOptional: []IPSSections{
|
||||||
|
IPSSectionsVitalSigns,
|
||||||
|
IPSSectionsHistoryOfIllness,
|
||||||
|
IPSSectionsPregnancy,
|
||||||
|
IPSSectionsSocialHistory,
|
||||||
|
IPSSectionsPlanOfCare,
|
||||||
|
IPSSectionsFunctionalStatus,
|
||||||
|
IPSSectionsAdvanceDirectives,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
|
@ -68,13 +68,46 @@ func (gr *GormRepository) GetInternationalPatientSummaryExport(ctx context.Conte
|
||||||
|
|
||||||
//Step 2. Create the Composition Section
|
//Step 2. Create the Composition Section
|
||||||
compositionSections := []fhir401.CompositionSection{}
|
compositionSections := []fhir401.CompositionSection{}
|
||||||
for sectionType, sectionQueryResultsList := range summarySectionQueryResults {
|
|
||||||
compositionSection, err := generateIPSCompositionSection(narrativeEngine, sectionType, sectionQueryResultsList)
|
//loop though the various section groups in order (required, recommended, optional)
|
||||||
if err != nil {
|
for ndx, _ := range pkg.IPSSectionGroupsOrdered[pkg.IPSSectionGroupsRequired] {
|
||||||
return exportData, err
|
section := pkg.IPSSectionGroupsOrdered[pkg.IPSSectionGroupsRequired][ndx]
|
||||||
|
if sectionQueryResultsList, ok := summarySectionQueryResults[section]; ok {
|
||||||
|
compositionSection, err := generateIPSCompositionSection(narrativeEngine, section, sectionQueryResultsList)
|
||||||
|
if err != nil {
|
||||||
|
return exportData, err
|
||||||
|
}
|
||||||
|
compositionSections = append(compositionSections, *compositionSection)
|
||||||
}
|
}
|
||||||
compositionSections = append(compositionSections, *compositionSection)
|
|
||||||
}
|
}
|
||||||
|
for ndx, _ := range pkg.IPSSectionGroupsOrdered[pkg.IPSSectionGroupsRecommended] {
|
||||||
|
section := pkg.IPSSectionGroupsOrdered[pkg.IPSSectionGroupsRecommended][ndx]
|
||||||
|
if sectionQueryResultsList, ok := summarySectionQueryResults[section]; ok {
|
||||||
|
compositionSection, err := generateIPSCompositionSection(narrativeEngine, section, sectionQueryResultsList)
|
||||||
|
if err != nil {
|
||||||
|
return exportData, err
|
||||||
|
}
|
||||||
|
compositionSections = append(compositionSections, *compositionSection)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for ndx, _ := range pkg.IPSSectionGroupsOrdered[pkg.IPSSectionGroupsOptional] {
|
||||||
|
section := pkg.IPSSectionGroupsOrdered[pkg.IPSSectionGroupsOptional][ndx]
|
||||||
|
if sectionQueryResultsList, ok := summarySectionQueryResults[section]; ok {
|
||||||
|
compositionSection, err := generateIPSCompositionSection(narrativeEngine, section, sectionQueryResultsList)
|
||||||
|
if err != nil {
|
||||||
|
return exportData, err
|
||||||
|
}
|
||||||
|
compositionSections = append(compositionSections, *compositionSection)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//for sectionType, sectionQueryResultsList := range summarySectionQueryResults {
|
||||||
|
// compositionSection, err := generateIPSCompositionSection(narrativeEngine, sectionType, sectionQueryResultsList)
|
||||||
|
// if err != nil {
|
||||||
|
// return exportData, err
|
||||||
|
// }
|
||||||
|
// compositionSections = append(compositionSections, *compositionSection)
|
||||||
|
//}
|
||||||
|
|
||||||
//TODO: Step 3. Query all the Patient Resources & merge them together
|
//TODO: Step 3. Query all the Patient Resources & merge them together
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue