/// <summary> /// Retrieving a specific list of cases /// </summary> /// <param name="caseURNs">list of case urns</param> /// <returns>list of cases</returns> public CaseList GetCases(List<string> caseURNs) { Log.Debug("Retrieving cases..."); string URI = String.Format("pathology/cases"); CaseList result; IRestResponse response; try { RestStringArrayType urns = new RestStringArrayType(caseURNs); string body = ResponseParser.SerializeToXml<RestStringArrayType>(urns); response = ExecutePost(URI, VixServiceTypes.Pathology, body); ValidateRestResponse(response); result = ResponseParser.ParseGetCaseListResponse(response.Content); } catch (MagResponseParsingFailureException rpf) { Log.Error("Could not serialize urn lists.", rpf); result = new CaseList(); } catch (MagVixFailureException vfe) { Log.Error("Unexpected response.", vfe); result = new CaseList(); } catch (Exception ex) { Log.Error("Could not complete request to retrieve cases.", ex); result = new CaseList(); } return result; }
/// <summary> /// Add new CPT codes for a case /// </summary> /// <param name="caseURN">case ID</param> /// <param name="locationURN">ordering location id</param> /// <param name="cptCodes">new cpt codes</param> /// <returns>result for those codes</returns> public PathologyCptCodeResultsType AddCptCodesForCase(string caseURN, string locationURN, ObservableCollection<string> cptCodes) { Log.Debug("Adding new CPT codes..."); if (string.IsNullOrWhiteSpace(caseURN)) { throw new MagVixFailureException("Missing parameter: Case URN."); } if (string.IsNullOrWhiteSpace(locationURN)) { throw new MagVixFailureException("Missing parameter: Ordering Facility."); } if (cptCodes == null) { throw new MagVixFailureException("Missing parameter: CPT codes."); } string URI = String.Format("pathology/case/cpt/{0}/{1}", caseURN, locationURN); IRestResponse response; try { RestStringArrayType cptArray = new RestStringArrayType(); cptArray.Values = cptCodes; string body = ResponseParser.SerializeToXml<RestStringArrayType>(cptArray); response = ExecutePost(URI, VixServiceTypes.Pathology, body); ValidateRestResponse(response); PathologyCptCodeResultsType result = ResponseParser.ParseAddCptCodesForCase(response.Content); return result; } catch (MagResponseParsingFailureException rpf) { if (rpf.ErrorMessage.Contains("Serialization")) { throw new MagVixFailureException("Could not parse CPT codes to response parameter.", rpf); } else { throw new MagVixFailureException("Could not parse CPT codes result.", rpf); } } catch (MagVixFailureException) { throw; } catch (Exception ex) { throw new MagVixFailureException("Could not complete request to add new CPT codes.", ex); } }