diff --git a/pkg/clinical/usecases/clinical/servicerequest.go b/pkg/clinical/usecases/clinical/servicerequest.go index ae08339..5fbe47e 100644 --- a/pkg/clinical/usecases/clinical/servicerequest.go +++ b/pkg/clinical/usecases/clinical/servicerequest.go @@ -32,9 +32,7 @@ func (c *UseCasesClinicalImpl) ReferPatient( return nil, fmt.Errorf("cannot record a referral in a finished encounter") } - patientID := encounter.Resource.Subject.ID - patientReference := fmt.Sprintf("Patient/%s", *patientID) - + patientReference := fmt.Sprintf("Patient/%s", *encounter.Resource.Subject.ID) encounterReference := fmt.Sprintf("Encounter/%s", *encounter.Resource.ID) startTime := scalarutils.DateTime(time.Now().Format("2006-01-02T15:04:05+03:00")) @@ -60,6 +58,32 @@ func (c *UseCasesClinicalImpl) ReferPatient( }, } + if input.Facility != "" { + facilityExtension := &domain.FHIRExtension{ + URL: "http://savannahghi.org/fhir/StructureDefinition/referred-facility", + Extension: []domain.Extension{ + { + URL: "facilityName", + ValueString: input.Facility, + }, + }, + } + serviceRequest.Extension = append(serviceRequest.Extension, facilityExtension) + } + + if input.Specialist != "" { + specialistExtension := &domain.FHIRExtension{ + URL: "http://savannahghi.org/fhir/StructureDefinition/referred-specialist", + Extension: []domain.Extension{ + { + URL: "specialistName", + ValueString: input.Specialist, + }, + }, + } + serviceRequest.Extension = append(serviceRequest.Extension, specialistExtension) + } + tags, err := c.GetTenantMetaTags(ctx) if err != nil { return nil, err diff --git a/pkg/clinical/usecases/clinical/servicerequest_test.go b/pkg/clinical/usecases/clinical/servicerequest_test.go index 6ba3ef5..7c0b6e1 100644 --- a/pkg/clinical/usecases/clinical/servicerequest_test.go +++ b/pkg/clinical/usecases/clinical/servicerequest_test.go @@ -36,8 +36,8 @@ func TestUseCasesClinicalImpl_ReferPatient(t *testing.T) { EncounterID: gofakeit.UUID(), ReferralType: "DIAGNOSTICS", Tests: []string{"VIA"}, - Specialist: "", - Facility: "", + Specialist: "Oncologist", + Facility: "KNH", ReferralNote: "", }, },