/// <summary> /// Returns a dictionary of field numbers and values /// </summary> /// <param name="recordIen">The IEN in the Vista file</param> /// <param name="fields">Separate fields with a semicolon - e.g.: .01;.02;9 Leave blank to retrieve all fields</param> /// <param name="vistaFile">The Vista file number</param> /// <returns>CrudOperation</returns> public CrudOperation read(String recordIen, String fields, String vistaFile, String flags = null) { DdrGetsEntry ddr = buildReadRequest(recordIen, fields, vistaFile); DateTime startRequest = DateTime.Now; String rawRpcResponse = ddr.execute(ddr.buildRequest()); //.execute(); String[] results = StringUtils.split(rawRpcResponse, StringUtils.CRLF); DateTime endRequest = DateTime.Now; //return ddr.convertToFieldValueDictionary(results); Dictionary <String, String> parsed = ddr.convertToFieldValueDictionary(results); CrudOperation result = new CrudOperation() { RPC = new RPC() { Name = ddr.buildRequest().RpcName, RequestString = ddr.buildRequest().buildMessage(), ResponseString = rawRpcResponse, RequestTime = startRequest, ResponseTime = endRequest }, Result = parsed, Type = CrudOperationType.READ }; return(result); }
/// <summary> /// Returns a dictionary of field numbers and values /// </summary> /// <param name="recordIen">The IEN in the Vista file</param> /// <param name="fields">Separate fields with a semicolon - e.g.: .01;.02;9 Leave blank to retrieve all fields</param> /// <param name="vistaFile">The Vista file number</param> /// <returns>Dictionary<String, String></returns> public Dictionary <String, String> read(String recordIen, String fields, String vistaFile, String flags = null) { DdrGetsEntry ddr = buildReadRequest(recordIen, fields, vistaFile); String[] results = ddr.execute(); return(ddr.convertToFieldValueDictionary(results)); }
/// <summary> /// Get an order from the RAD/NUC MED ORDERS file #75.1 /// </summary> /// <param name="orderIen"></param> /// <returns></returns> public Order getRadNucOrder(String orderIen) { DdrGetsEntry request = buildGetRadNucMedOrderRequest(orderIen); String[] results = request.execute(); Dictionary <String, String> resultsDict = DdrGetsEntry.convertResultToDictionary(results); return(toRadNucOrder(resultsDict)); }
internal DdrGetsEntry buildGetClinicSchedulingDetailsQuery(string clinicId) { DdrGetsEntry query = new DdrGetsEntry(this.cxn); query.File = "44"; query.Fields = ".01;1;2;7;9;24;1912;1914;1917"; query.Flags = "IE"; query.Iens = clinicId + ","; return(query); }
internal DdrGetsEntry buildReadRequest(String recordIen, String fields, String vistaFile, String flags = null) { DdrGetsEntry ddr = new DdrGetsEntry(_cxn); ddr.Fields = String.IsNullOrEmpty(fields) ? "*" : fields; ddr.File = vistaFile; ddr.Flags = String.IsNullOrEmpty(flags) ? "IN" : flags; ddr.Iens = recordIen.EndsWith(",") ? recordIen : String.Concat(recordIen, ","); // helper to add trailing comma if not present return(ddr); }
public HospitalLocation getClinicSchedulingDetails(string clinicId) { DdrGetsEntry request = buildGetClinicSchedulingDetailsQuery(clinicId); string[] response = request.execute(); HospitalLocation result = toClinicSchedulingDetails(response); result.Availability = getClinicAvailability(clinicId, Convert.ToInt32(result.ClinicDisplayStartTime), Convert.ToInt32(result.AppointmentLength)); // supplement availability return(result); }
public string[] ddrGetsEntry( string file, string iens, string flds, string flags) { DdrGetsEntry query = new DdrGetsEntry(cxn); query.File = file; query.Iens = iens; query.Fields = flds; query.Flags = flags; string[] result = query.execute(); return(result); }
public HospitalLocation getClinicSchedulingDetails(String clinicId, String startDateTime) { DdrGetsEntry request = buildGetClinicSchedulingDetailsQuery(clinicId); string[] response = request.execute(); HospitalLocation result = toClinicSchedulingDetails(response); Int32 clinicDisplayStartTimeInt = 0; Int32 apptLengthInt = 0; if (String.IsNullOrEmpty(result.ClinicDisplayStartTime) || !Int32.TryParse(result.ClinicDisplayStartTime, out clinicDisplayStartTimeInt) || String.IsNullOrEmpty(result.AppointmentLength) || !Int32.TryParse(result.AppointmentLength, out apptLengthInt)) { throw new mdo.exceptions.DataException("The clinic has not been configured correctly in VistA"); } result.Availability = getClinicAvailability(clinicId, startDateTime, clinicDisplayStartTimeInt, apptLengthInt); // supplement availability return(result); }
public string[] ddrGetsEntry( string file, string iens, string flds, string flags) { DdrGetsEntry query = new DdrGetsEntry(cxn); query.File = file; query.Iens = iens; query.Fields = flds; query.Flags = flags; string[] result = query.execute(); return result; }
internal DdrGetsEntry buildGetClinicSchedulingDetailsQuery(string clinicId) { DdrGetsEntry query = new DdrGetsEntry(this.cxn); query.File = "44"; query.Fields = ".01;1;2;7;9;24;1912;1914;1917"; query.Flags = "IE"; query.Iens = clinicId + ","; return query; }