/// <summary>
/// Given a national identifier find the patient's sites
/// </summary>
/// <param name="mpiPid"></param>
/// <returns></returns>
public TaggedTextArray getPatientSitesByMpiPid(string mpiPid)
{
TaggedTextArray result = new TaggedTextArray();
if (String.IsNullOrEmpty(mpiPid))
{
result.fault = new FaultTO("Missing mpiPid");
}
if (result.fault != null)
{
return result;
}
// Temporary visit to site 200 for initial lookup
AccountLib acctLib = new AccountLib(mySession);
result = acctLib.visitDoD(null);
if (result.fault != null)
{
return result;
}
TextTO localPid = getLocalPid(mpiPid);
if (localPid.fault != null)
{
result.fault = localPid.fault;
return result;
}
if (String.IsNullOrEmpty(localPid.text))
{
result.fault = new FaultTO("Empty DFN returned from VistA");
return result;
}
PatientApi patientApi = new PatientApi();
StringDictionary siteIds = patientApi.getRemoteSiteIds(mySession.ConnectionSet.BaseConnection, localPid.text);
mySession.ConnectionSet.disconnectAll();
result = new TaggedTextArray(siteIds);
return result;
}