public void HandlePractitioner(Visit visit, XCN physician, VisitPractitionerRole role) { string physicianIDNumber = physician.IDNumber.Value; string physicianFamilyName = physician.FamilyName.Surname.Value; string physicanGivenName = physician.GivenName.Value; string physicanMiddleName = physician.SecondAndFurtherGivenNamesOrInitialsThereof.Value; if (physicianIDNumber == null && physicianFamilyName == null && physicanGivenName == null && physicanMiddleName == null) { return; } var vp = new VisitPractitioner { Role = role, Practitioner = GetPractitioner(physicianIDNumber) ?? AddPractitioner(physicianIDNumber, physicanGivenName, physicianFamilyName), StartTime = Platform.Time }; visit.Practitioners.Add(vp); foreach (var existing in visit.Practitioners) { if (existing != vp && existing.Role == vp.Role && existing.EndTime.HasValue == false) { existing.EndTime = Platform.Time; } } }
private static VisitPractitionerDetail CreateVisitPractitionerDetail(VisitPractitioner vp, IPersistenceContext context) { var detail = new VisitPractitionerDetail { Practitioner = new ExternalPractitionerAssembler().CreateExternalPractitionerSummary(vp.Practitioner, context), Role = EnumUtils.GetEnumValueInfo(vp.Role, context), StartTime = vp.StartTime, EndTime = vp.EndTime }; return(detail); }
private void SetPhysician(PV1 pv1, VisitPractitioner practitioner) { SetPhysician(pv1, practitioner.Role.ToString(), practitioner.Practitioner); }