Example #1
0
        /// <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);
        }
Example #2
0
        /// <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));
        }
Example #3
0
        /// <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));
        }
Example #4
0
        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);
        }
Example #5
0
        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);
        }
Example #6
0
        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);
        }
Example #7
0
        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);
        }
Example #8
0
        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);
        }
Example #9
0
 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;
 }
Example #10
0
 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;
 }