Inheritance: DdrQuery
        public string deleteRecord(AbstractConnection cxn, string ien, string parentIen)
        {
            DdrFiler query    = buildRemoveSubrecordQuery(cxn, ien, parentIen);
            string   response = query.execute();

            return(response);
        }
        internal static DdrFiler buildAddRecordQuery(AbstractConnection cxn, RemoteApplicationRecord rec, CallBackFileRecord subrec)
        {
            DdrFiler query = new DdrFiler(cxn);

            query.Operation = "ADD";
            ArrayList  lst = new ArrayList(7);
            VistaField f   = rec.Fields["NAME"];

            lst.Add(FILE_NUMBER + "^" + f.VistaNumber + "^+1,^" + f.VistaValue);
            f = rec.Fields["CONTEXTOPTION"];
            VistaUserDao dao = new VistaUserDao(cxn);

            lst.Add(FILE_NUMBER + "^" + f.VistaNumber + "^+1,^" + dao.getOptionIen(f.VistaValue));
            f = rec.Fields["APPLICATIONCODE"];
            lst.Add(FILE_NUMBER + "^" + f.VistaNumber + "^+1,^" + f.VistaValue);

            f = subrec.Fields["CALLBACKTYPE"];
            lst.Add(CALLBACK_FILE_NUMBER + "^" + f.VistaNumber + "^+2,+1^" + f.VistaValue);
            f = subrec.Fields["CALLBACKPORT"];
            lst.Add(CALLBACK_FILE_NUMBER + "^" + f.VistaNumber + "^+2,+1^" + f.VistaValue);
            f = subrec.Fields["CALLBACKSERVER"];
            lst.Add(CALLBACK_FILE_NUMBER + "^" + f.VistaNumber + "^+2,+1^" + f.VistaValue);
            f = subrec.Fields["URLSTRING"];
            lst.Add(CALLBACK_FILE_NUMBER + "^" + f.VistaNumber + "^+2,+1^" + f.VistaValue);

            query.Args = (string[])lst.ToArray(typeof(string));
            return(query);
        }
        public static string addRecord(AbstractConnection cxn, RemoteApplicationRecord rec, CallBackFileRecord subrec)
        {
            DdrFiler query    = buildAddRecordQuery(cxn, rec, subrec);
            string   response = query.execute();

            return(response);
        }
Exemple #4
0
        /// <summary>
        /// Create a new record entry in a Vista file
        /// </summary>
        /// <param name="fieldsAndValues">The field number and value dictionary</param>
        /// <param name="vistaFile">The Vista file number</param>
        /// <param name="iens">If creating a record in a subfile, the IENS string of the parent record</param>
        /// <returns>The IEN of the new record</returns>
        public CrudOperation create(Dictionary <String, String> fieldsAndValues, String vistaFile, String iens = null)
        {
            Dictionary <String, String> wpFieldsAndValues = findWpFields(fieldsAndValues);
            DdrFiler request      = buildCreateRequest(fieldsAndValues, vistaFile, iens);
            DateTime startRequest = DateTime.Now;
            String   response     = request.execute();
            DateTime endRequest   = DateTime.Now;
            String   parsed       = toCreateUpdateDeleteRecordResponse(response);

            // if we get this far, create succeeded! to make the API easier to use, enable user to pass WP fields in dictionary
            foreach (String key in wpFieldsAndValues.Keys)
            {
                addWordProcessing(vistaFile, key, String.Concat(parsed, ",", iens), wpFieldsAndValues[key]);
            }

            //return result;
            CrudOperation result = new CrudOperation()
            {
                RPC = new RPC()
                {
                    Name           = request.buildRequest().RpcName,
                    RequestString  = request.buildRequest().buildMessage(),
                    ResponseString = response,
                    RequestTime    = startRequest,
                    ResponseTime   = endRequest
                },
                Result = parsed,
                Type   = CrudOperationType.CREATE
            };

            return(result);
        }
Exemple #5
0
        public void delete(String recordIen, String vistaFile)
        {
            DdrFiler request  = buildDeleteRequest(recordIen, vistaFile);
            String   response = request.execute();

            toCreateUpdateDeleteRecordResponse(response);
        }
        public static string deleteRecord(AbstractConnection cxn, string ien)
        {
            CallBackFile callBackFile = new CallBackFile();
            string       result       = callBackFile.deleteRecord(cxn, "1", ien);
            DdrFiler     query        = buildDeleteRecordQuery(cxn, ien);

            result = query.execute();
            return(result);
        }
Exemple #7
0
        /// <summary>
        /// Query to delete a record from a file
        /// </summary>
        /// <param name="recordIen">The entry IEN. Can be a subfile (IENS string needs to be built correctly)</param>
        /// <param name="vistaFile">The Vista file from which to delete a record</param>
        /// <returns></returns>
        internal DdrFiler buildDeleteRequest(String recordIen, String vistaFile)
        {
            DdrFiler query = new DdrFiler(_cxn);

            query.Operation = "EDIT";
            query.Args      = new string[]
            {
                vistaFile + "^.01^" + recordIen + "^@" // per API docs, setting .01 field to "@" deletes record
            };
            return(query);
        }
        internal DdrFiler buildRemoveSubrecordQuery(AbstractConnection cxn, string ien, string parentIen)
        {
            DdrFiler query = new DdrFiler(cxn);

            query.Operation = "EDIT";
            query.Args      = new string[]
            {
                FILE_NUMBER + "^.01^" + ien + ',' + parentIen + ",^@"
            };
            return(query);
        }
        internal static DdrFiler buildDeleteRecordQuery(AbstractConnection cxn, string ien)
        {
            DdrFiler query = new DdrFiler(cxn);

            query.Operation = "EDIT";
            query.Args      = new string[]
            {
                FILE_NUMBER + "^.01^" + ien + ",^@"
            };
            return(query);
        }
Exemple #10
0
        /// <summary>
        /// Create a new record entry in a Vista file
        /// </summary>
        /// <param name="fieldsAndValues">The field number and value dictionary</param>
        /// <param name="vistaFile">The Vista file number</param>
        /// <param name="iens">If creating a record in a subfile, the IENS string of the parent record</param>
        /// <returns>The IEN of the new record</returns>
        public String create(Dictionary <String, String> fieldsAndValues, String vistaFile, String iens = null)
        {
            Dictionary <String, String> wpFieldsAndValues = findWpFields(fieldsAndValues);
            DdrFiler request  = buildCreateRequest(fieldsAndValues, vistaFile, iens);
            String   response = request.execute();
            String   result   = toCreateUpdateDeleteRecordResponse(response);

            // if we get this far, create succeeded! to make the API easier to use, enable user to pass WP fields in dictionary
            foreach (String key in wpFieldsAndValues.Keys)
            {
                addWordProcessing(vistaFile, key, String.Concat(result, ",", iens), wpFieldsAndValues[key]);
            }
            return(result);
        }
Exemple #11
0
        internal DdrFiler buildUpdateRequest(Dictionary <String, String> fieldsAndValues, String ien, String vistaFile)
        {
            DdrFiler ddr = new DdrFiler(_cxn);

            ddr.Operation = "UPDATE";

            int index = 0;

            ddr.Args = new String[fieldsAndValues.Count];
            foreach (String key in fieldsAndValues.Keys)
            {
                ddr.Args[index++] = vistaFile + "^" + key + "^" + ien + "^" + fieldsAndValues[key]; // e.g. [0]: 2^.01^5,^PATIENT,NEW  [1]: 2^.09^5,^222113333
            }

            return(ddr);
        }
Exemple #12
0
        public void update(Dictionary <String, String> fieldsAndValues, String ien, String vistaFile)
        {
            Dictionary <String, String> wpFieldsAndValues = findWpFields(fieldsAndValues);

            if (fieldsAndValues.Count > 0) // need to check this in case we were only updating WP fields
            {
                DdrFiler request  = buildUpdateRequest(fieldsAndValues, ien, vistaFile);
                String   response = request.execute();
                toCreateUpdateDeleteRecordResponse(response); // should throw exception on failure
            }
            // if we get this far, create succeeded! to make the API easier to use, enable user to pass WP fields in dictionary
            foreach (String key in wpFieldsAndValues.Keys)
            {
                addWordProcessing(vistaFile, key, ien, wpFieldsAndValues[key]);
                fieldsAndValues.Add(key, wpFieldsAndValues[key]); // want to add this back to original dict so that we don't permanently change it's state
            }
        }
Exemple #13
0
        public CrudOperation update(Dictionary <String, String> fieldsAndValues, String ien, String vistaFile)
        {
            CrudOperation result = null;

            Dictionary <String, String> wpFieldsAndValues = findWpFields(fieldsAndValues);

            if (fieldsAndValues.Count > 0) // need to check this in case we were only updating WP fields
            {
                DdrFiler request      = buildUpdateRequest(fieldsAndValues, ien, vistaFile);
                DateTime startRequest = DateTime.Now;
                String   response     = request.execute();
                DateTime endRequest   = DateTime.Now;
                String   parsed       = toCreateUpdateDeleteRecordResponse(response); // should throw exception on failure

                result = new CrudOperation()
                {
                    RPC = new RPC()
                    {
                        Name           = request.buildRequest().RpcName,
                        RequestString  = request.buildRequest().buildMessage(),
                        ResponseString = response,
                        RequestTime    = startRequest,
                        ResponseTime   = endRequest
                    },
                    Result = parsed,
                    Type   = CrudOperationType.UPDATE
                };
            }
            // if we get this far, create succeeded! to make the API easier to use, enable user to pass WP fields in dictionary
            foreach (String key in wpFieldsAndValues.Keys)
            {
                addWordProcessing(vistaFile, key, ien, wpFieldsAndValues[key]);
                fieldsAndValues.Add(key, wpFieldsAndValues[key]); // want to add this back to original dict so that we don't permanently change it's state
            }


            return(result);
        }
Exemple #14
0
        internal DdrFiler buildCreateRequest(Dictionary <String, String> fieldsAndValues, String vistaFile, String iens = null)
        {
            DdrFiler ddr = new DdrFiler(_cxn);

            ddr.Operation = "ADD";

            int index = 0;

            ddr.Args = new String[fieldsAndValues.Count];
            foreach (String key in fieldsAndValues.Keys)
            {
                if (String.IsNullOrEmpty(iens))
                {
                    ddr.Args[index++] = vistaFile + "^" + key + "^+1,^" + fieldsAndValues[key]; // e.g. [0]: 2^.01^+1,PATIENT,NEW^DDROOT(1)  [1]: 2^.09^+1,^222113333
                }
                else
                {
                    ddr.Args[index++] = vistaFile + "^" + key + "^+1," + iens + "^" + fieldsAndValues[key]; // e.g. [0]: 2^.01^+1,PATIENT,NEW  [1]: 2^.09^+1,^222113333
                }
            }

            return(ddr);
        }
Exemple #15
0
        public CrudOperation delete(String recordIen, String vistaFile)
        {
            DdrFiler request      = buildDeleteRequest(recordIen, vistaFile);
            DateTime startRequest = DateTime.Now;
            String   response     = request.execute();
            DateTime endRequest   = DateTime.Now;
            String   parsed       = toCreateUpdateDeleteRecordResponse(response);

            CrudOperation result = new CrudOperation()
            {
                RPC = new RPC()
                {
                    Name           = request.buildRequest().RpcName,
                    RequestString  = request.buildRequest().buildMessage(),
                    ResponseString = response,
                    RequestTime    = startRequest,
                    ResponseTime   = endRequest
                },
                Result = parsed,
                Type   = CrudOperationType.DELETE
            };

            return(result);
        }
Exemple #16
0
        internal static DdrFiler buildAddRecordQuery(AbstractConnection cxn, RemoteApplicationRecord rec, CallBackFileRecord subrec)
        {
            DdrFiler query = new DdrFiler(cxn);
            query.Operation = "ADD";
            ArrayList lst = new ArrayList(7);
            VistaField f = rec.Fields["NAME"];
            lst.Add(FILE_NUMBER + "^" + f.VistaNumber + "^+1,^" + f.VistaValue);
            f = rec.Fields["CONTEXTOPTION"];
            VistaUserDao dao = new VistaUserDao(cxn);
            lst.Add(FILE_NUMBER + "^" + f.VistaNumber + "^+1,^" + dao.getOptionIen(f.VistaValue));
            f = rec.Fields["APPLICATIONCODE"];
            lst.Add(FILE_NUMBER + "^" + f.VistaNumber + "^+1,^" + f.VistaValue);

            f = subrec.Fields["CALLBACKTYPE"];
            lst.Add(CALLBACK_FILE_NUMBER + "^" + f.VistaNumber + "^+2,+1^" + f.VistaValue);
            f = subrec.Fields["CALLBACKPORT"];
            lst.Add(CALLBACK_FILE_NUMBER + "^" + f.VistaNumber + "^+2,+1^" + f.VistaValue);
            f = subrec.Fields["CALLBACKSERVER"];
            lst.Add(CALLBACK_FILE_NUMBER + "^" + f.VistaNumber + "^+2,+1^" + f.VistaValue);
            f = subrec.Fields["URLSTRING"];
            lst.Add(CALLBACK_FILE_NUMBER + "^" + f.VistaNumber + "^+2,+1^" + f.VistaValue);

            query.Args = (string[])lst.ToArray(typeof(string));
            return query;
        }
Exemple #17
0
 internal DdrFiler buildRemoveSecurityKeyByIenQuery(string securityKeyIen, string duz)
 {
     DdrFiler query = new DdrFiler(cxn);
     query.Operation = "EDIT";
     query.Args = new string[]
     {
         "200.051^.01^" + securityKeyIen + "," + duz + ",^@"
     };
     return query;
 }
Exemple #18
0
 internal static DdrFiler buildDeleteRecordQuery(AbstractConnection cxn, string ien)
 {
     DdrFiler query = new DdrFiler(cxn);
     query.Operation = "EDIT";
     query.Args = new string[]
     {
         FILE_NUMBER + "^.01^" + ien + ",^@"
     };
     return query;
 }
Exemple #19
0
 internal DdrFiler buildRemoveOptionQuery(string file, string optNum, string duz)
 {
     DdrFiler query = new DdrFiler(cxn);
     query.Operation = "EDIT";
     query.Args = new string[]
     {
         file + "^.01^" + optNum + "," + duz + ",^@"
     };
     return query;
 }
Exemple #20
0
 internal DdrFiler buildRemoveSubrecordQuery(AbstractConnection cxn, string ien, string parentIen)
 {
     DdrFiler query = new DdrFiler(cxn);
     query.Operation = "EDIT";
     query.Args = new string[]
     {
         FILE_NUMBER + "^.01^" + ien + ',' + parentIen + ",^@"
     };
     return query;
 }
Exemple #21
0
 internal DdrFiler buildAddOptionQuery(string file, string optionIen, string duz)
 {
     DdrFiler query = new DdrFiler(cxn);
     query.Operation = "ADD";
     query.Args = new string[]
     {
         file + "^.01^+1," + duz + ",^" + optionIen
     };
     return query;
 }