Patent Publication Number: US-7913900-B2

Title: System of performing a retrospective drug profile review of de-identified patients

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
     This application is a continuation of application Ser. No. 11/573,987 filed Feb. 20, 2007 now U.S. Pat. No. 7,778,930, which is a U.S. national stage entry of international application PCT/US06/19432 filed May 18, 2006, which claims priority to provisional application No. 60/685,491 filed May 31, 2005, and non-provisional application Ser. No. 11/235,083, filed Sep. 28, 2005, the contents of all of which are incorporated herein by reference. 
    
    
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The invention relates to providing specific advisory messages to patients/consumers in a store, pharmacy or other location. 
     2. Discussion of the Background 
     U.S. Pat. No. 6,067,524 to Byerly et al. discloses a method and system for generating advisory messages to pharmacy patients. The teachings of U.S. Pat. No. 6,067,524 are incorporated herein by reference. 
     SUMMARY OF THE INVENTION 
     Definitions 
     We refer to a Computer System with the acronym CS. 
     Certain terms used in this application are defined below. In some cases, examples are provided to clarify the definition. 
     A consumer, in this application, is synonymous with a patient, or a purchaser of a drug, or one who is prescribed a drug, or one who takes a drug, or one who fills a prescription for a drug or a user of a drug; all of these terms are synonymous with each other. 
     NDC is an acronym for National Drug Code. Each medication listed under Section 510 of the U.S. Federal Food, Drug, and Cosmetic Act is assigned a unique 11-digit, 3-segment number. This number, known as the National Drug Code (NDC), identifies the labeler/vendor, product, and trade package size. The first segment, the labeler code, is assigned by the FDA. A labeler is any firm that manufactures (including repackers or relabelers), or distributes (under its own name) the drug. 
     PID is an acronym for Patient Identification. PID in this application refers to any unique set of symbols that identifies a particular patient. PID is an acronym for “Patient ID.” A PID may, for example, be comprised of a sequence of numbers and letters. 
     POS is an acronym for Point Of Sale. A POS is the area where a consumer engages in transactions at a retail store. 
     A POS terminal, in this application, means a point of sale terminal, which is an input output device for communicating consumer transaction information between a consumer and a retail store to a CS associated with the retail store. 
     A POS CS, in this application, means a CS for logging POS transaction data, including any peripheral and input and output devices connected to it, such as POS terminals, optical scanners, printers, etc. 
     All databases herein may be formatted as one or more files, xml documents, relational database files, and may include tables, forms, queries, relations, reports, modules, and other objects useful in database management and programming. All computers herein may include a digital central processing unit, RAM memory, disk drives, operating system software, and conventional hardware and software to implement, for example, database management and networking. 
     A product code, in this application, is a code associated with a product assigned by a manufacturer or distributor (labeler). For example, a product code may be a code assigned by a company, a store, or by an industry standard, to a product. 
     A prescription, in this application, means an order for the preparation and administration of a medicine or drug. 
     A purchase, in this application, means a transaction involving at least two parties in which forms of payment such as cash, check, charge, debit, smart card, gift card, credit slip, or credit is exchanged for one or more goods or services in a retail store. 
     Purchase data, in this application, means data associated with purchases. For example, purchase data may include a product code for the product purchased, product description, product purchase list price, actual price paid, date of purchase, time of purchase, transaction ID, location of purchase, discount amount, discount type, and type of payment, and a PID. 
     A retail store, in this application, refers to a store in which products are located and sold to consumers. Examples of retail stores include pharmacies, supermarkets, quick service restaurants, convenience stores, retail clothing stores, gas stations, petroleum stores, wholesalers, outlet stores, and warehouses. 
     An individual transaction, in this application, means a single exchange involving at least two legal entities. A purchase is an individual transaction. 
     Individual transaction data, in this application, means data associated with an individual transaction. 
     Transaction data, in this application, means data associated with one or more transactions. For example, transaction data may include purchase data, time and date data, PIDs, transaction terminal IDs, store IDs for one or more transactions. 
     Transaction ID, in this application, refers to a unique identification associated with an individual transaction. 
     Switch, in this application, refers to a claim adjudication legal entity that accepts individual transaction data from a pharmacy, submits the data to an insurance company reformatted to the data requirements of the insurance company, receives responses thereto from the insurance company, and forwards those responses to the originating pharmacy. 
     A pharmacy management CS, in this application, refers to a POS CS including a patient database and a drug database that is capable of logging transaction data for consumers in a pharmacy. 
     A drug database, in this application, refers to a database including at least three of the following: patient names; prescribing history records (e.g., drug, dosage, doctor, date); patient method of payment (e.g., cash, check, credit, or health insurance company); group plan name and member ID; name and address of primary doctor and DEA number of primary doctor; association of prescription to prescribing doctor&#39;s ID and contact information; and a drug visualization system to view drug images against actual pills or capsules. 
     De-identifying patient information means removing sufficient key items from the patient information such that the information cannot be used, alone or in combination with other reasonably available patient information, to identify the individual patient. 
     Re-identify means to take de-identified patient information and assign it to the identity of the patient. 
     The SHA-1 Standard defines the Secure Hash Algorithm, SHA-1, for computing a condensed representation of a message or a data file. When a message of any length &lt;264 bits is input, the SHA-1 produces a 160-bit output called a message digest. SHA-1 is described in Federal Information Processing Standards Publication 180-1, Apr. 17, 1995, the entire contents of which are incorporated herein by reference. The SHA-1 is designed to have the following properties: it is computationally infeasible to determine a message which corresponds to a given message digest, or to determine two different messages which produce the same message digest. 
     The Health Insurance Portability and Accountability Act of 1996 (HIPAA) confirms standards for regulatory approved de-identification. HIPAA approved de-identification requires removal of identifiers for the patient, the patient&#39;s relatives, employers, and household members. The test for HIPAA approved de-identification is that “a person with appropriate knowledge of and experience with generally accepted statistical and scientific principles and methods for rendering patient information not individually identifiable” determines that the risk is very small that the patient information could be used, alone or in combination with other reasonably available patient information, to identify a patient and documents the analysis to justify this determination. 
     HIPAA approved dc-identification thus may involve the deletion or alteration of some portion of patient data to protect patient privacy, while preserving the overall statistical and analytical integrity of the data. This is due to the fact that other patient information such as demographics, medical information, and healthcare facility information could be used separately or in combination to discern the identity of some patients. 
     The safe harbor method for de-identification, in this application, means the method defined by HIPAA. The safe harbor method requires (1) the removal of a list of 18 enumerated patient identifiers and (2) no actual knowledge that the patient information remaining could be used, alone or in combination, to identify the patient. The patient identifiers that must be removed include direct patient identifiers, such as name, street address, social security number, as well as other patient identifiers, such as birth date, admission and discharge dates, and five-digit zip code. The safe harbor method also requires removal of geographic subdivisions smaller than a state, except for the initial three digits of a zip code if the geographic unit formed by combining all zip codes with the same initial three digits contains more than 20,000 people. The safe harbor method does not require the removal of age if less than 90, gender, ethnicity, and other demographic information. 
     OBJECTS 
     It is an object of the present invention to provide to patients information that motivates the patients to comply with specified medical treatments and to educate the patient regarding the medications. 
     It is an object of the present invention to enable pharmacies and other parties (e.g., pharmaceutical companies, consumer packaged goods manufacturers, and retailers) to define, develop, and deliver advertising programs targeted at specific groups of patients. 
     These and other objects are provided by a novel system and method for providing targeted informational messages to individuals, comprising a pharmacy management CS configured to receive individual transaction data and an associated non-encrypted PID, to de-identify the individual transaction data to produce a de-identified individual transaction data, to encrypt said non-encrypted PID to produce an encrypted PID, and to use the encrypted and de-identified data to generate a targeted informational message and deliver that message to the person associated with the PID. 
     The encryption algorithm produces the same encrypted PID whenever the same un-encrypted PID is input. 
     The novel system also includes a CS configured to determine from the de-identified transaction data for the transaction associated with the encrypted PID at least one targeted informational message, store the targeted informational message in association with the encrypted PID, and transmit to the POS the targeted informational message in response to receipt of the PID at the POS. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The invention is described in connection with the following figures, wherein like reference numerals designate identical or corresponding parts. 
         FIG. 1  is a high level schematic diagram illustrating novel system  1 ; 
         FIG. 3A  shows data structure  300 A for database  130 A of  FIG. 1 ; 
         FIG. 3B  shows data structure  300 B for databases  120 A and  130 A of  FIG. 1 ; 
         FIG. 3C  shows data structure  300 C for databases  120 A and  130 A of  FIG. 1 ; 
         FIG. 5  is a flow diagram showing flow of data in computer equipment associated with one embodiment of either system  120  or system  130  of  FIG. 1 ; 
         FIG. 6  is a flow diagram showing flow of data in computer equipment associated with element  516  of  FIG. 5 ; 
         FIG. 7  is a flow chart of a method of using the system shown in  FIG. 1 ; 
         FIG. 8  is a flow chart of a method of using the system shown in  FIG. 1 ; 
         FIG. 9  illustrates an example database schema of database  120 A; 
         FIG. 10  illustrates an example database schema of database  120 A; 
         FIG. 11  illustrates an example database schema of database  120 A; 
         FIG. 12  illustrates an example database schema of database  120 A; 
         FIGS. 13-25  are flowcharts illustrating methods of utilizing the database schema of database  120 A. 
     
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
       FIG. 1  shows pharmacy management CS  130 , pharmacy management CS database  130 A, network  110 , communication links  104 , central CS  120 , central CS database  120 A, insurance company CS  140 , insurance company CS database  140 A, switch CS  142 , and switch CS database  142 A. 
     The communication links  104  indicate a means for data transmission including wire and wireless transmission hardware, data format, and transmission protocols. Lines connecting a database to a CS indicates that the computer controls read and write access to that database. 
       FIG. 3A  shows data structure  300 A including PID table  300 A- 2  and transaction data table  300 A- 1 . PID table  300 A- 2  includes data fields associated with a PID that identify the patient, including postal address field  350 , email address field  352 , name field  358 , telephone number field  356  and other data fields that can be used to identify a patient. Transaction table  300 A- 1  includes data associated with transactions in a pharmacy including PID field  330 , store ID field  310 , date field  334 , NDC field  336 , quantity field  338 , and physician field  340 . Tables  300 A- 1  and  300 A- 2  are representative of identification data and transaction data stored in pharmacy management CS  130 &#39;s database  130 A. Data stored in data structure  300 B is the result of de-identifying data stored in data structure  300 A. 
       FIG. 3B  shows data structure  300 B including encrypted PID field  302 , and transaction data fields  310 ,  334 ,  336 ,  338 , and other non-identifying transaction data fields. 
     Data structure  300 B may be used, for example, as a format for sending transaction data records from pharmacy management CS  130  to central CS  120 . Alternatively, the data structures and functionality described as existing in central CS  120  may reside in the system  130  on the same computer or distributed between computers interconnected by a network. 
     In alternative embodiments data structure  300 A may be used to transmit transaction data to central CS  120 . Central CS  120  de-identifies the transaction data and stores the de-identified data in database  120 A using data structure  300 B. 
       FIG. 3C  shows targeted message data structure  300 C of central CS  130  associating encrypted PID field  320  and targeted message field  322 . Data structure  300 C may reside on the CSs  120  and  130 . Data structure  300 C may be used as a format for transmission of data between systems  120  and  130 . 
       FIGS. 5-6  diagram flow of data in a specific embodiment or closely related embodiments. 
     Pharmacy publication system  406  transmits patient B&#39;s de-identified transaction data and patient B&#39;s encrypted PID to data load system  510  via local link  112  or network link  104 . 
     Any secure one-way algorithmic encryption process or encrypting hash algorithm that takes a unique unencrypted sequence of symbols (e.g., numbers or letters) as input and produces a unique encrypted sequence of symbols as output, such that the same unique encrypted output is produced for a given unique input, may be used as an alternative to the SHA-1 algorithm. 
       FIG. 5  is a flow diagram showing the flow of data preferably in central CS  120 , or alternatively in pharmacy management CS  130 .  FIG. 5  shows data load system  510 , data warehouse  514 , categorization and filtering system  516 , database build system  520 , publication content database server  512 , and retailer specific content database server  522 . 
     In exemplary embodiments, data load system  510 , data warehouse  514 , categorization and filtering system  516 , database build system  520 , publication content database server  512 , and retailer specific content database server  522  may be structured as sub-systems all residing within a single computer, or, alternately, may be structured as a physically distributed CS interconnected by conventional communication hardware and software. 
     In operation, data load system  510  receives as input SHA-1 encrypted PIDs linked to de-identified transaction data from pharmacy publication system  406  via data network link  104  or local data link  112 . Data load system  510  transforms de-identified patient data into a structure consistent with the data warehouse  514  requirements. Data load system  510  then outputs de-identified patient data including an SHA-1 encrypted PID to data warehouse  514 . Data load system  510  may, for example, populate tables in the data warehouse schema and then verify that the data is ready for use. Data load system  510  may, for example, verify the referential integrity between tables to ensure that all records relate to appropriate records in other tables. 
     In operation, data warehouse  514  functions, for example, as a data repository for organizing, structuring and storing plural pharmacies&#39; individual transaction data for query and analysis. Data warehouse  514  implements a process by which large quantities of related data from many operational systems is merged into a single, standard repository to provide an integrated information view based on logical queries. For example, data warehouse  514  may be a repository of 65 weeks of individual transaction data from 12,500 retail stores including therein a large number that either are pharmacies or include therein pharmacies, and store therein de-identified historical patient profiles. 
     Types of logical queries may relate to “data mining,” which can be defined as a process of data selection, exploration and building models using vast data stores to uncover previously unknown patterns. Other queries may be in support of research on a particular subject. In operation, data warehouse  514  serves as a tool that can provide information for use in a wide variety of therapeutic, statistical, and economic analyses and interventions to aid in making healthcare and business related decisions. In operation, data warehouse  514  can also generate and store feedback regarding the impact of prior decisions, facilitating improvements in patient care, operational efficiency, and reducing the cost of medical care. 
     In operation, categorization and filtering system  516  formulates and executes DBMS (Data Base Management System) queries on the de-identified individual transaction data residing on data warehouse  514 , using for example, SQL boolean logic and filtering operations. Categorization and filtering system  516  filters the query results to produce a subset of encrypted PIDs linked to de-identified individual transaction data matching categorization and filtering criteria. If the de-identified individual transaction data for one or more transactions linked to an encrypted PID matches certain categorization and filtering criteria, then the linked encrypted PID is termed a qualified encrypted PID. Categorization and filtering system  516  outputs a certain set of qualified encrypted PIDs to database build system  520 . 
     In operation, categorization and filtering system  516  may implement DBMS selection operations based upon complex criteria. These operations may be implemented as a series of simple queries using, for example, relatively simple SQL boolean logic, selection, and filtering operations. Such a series of simple queries may result, for example, in a series of intermediate tables or work tables that are progressively more refined and contain progressively smaller subsets of qualifying records. Partitioning the query tasks of categorization and filtering system  516  in this way may result in increased database access efficiency and shorter processing times. Partitioning the categorization and filtering operation into a series of simple query operations also promotes ease of programming, maintenance, modification, and testing. 
     In operation, database build system  520  receives as input from categorization and filtering system  516  a certain set of qualified encrypted PIDs. Database build system  520  queries publication content database server  512  for targeted messages associated with that certain categorization and filtering criteria. The retrieved targeted messages are those associated with the certain categorization and filtering criteria used to produce the certain set of qualified encrypted PIDs. Database build system  520  associates the retrieved targeted messages with the set of encrypted PIDs, for example, by combining the qualified encrypted PIDs output from categorization and filtering system  516  with the certain targeted messages retrieved from publication content database server  512 . Database build system  520  outputs targeted messages linked to qualified encrypted PIDs to retailer specific content database server  522 . Preferably, the output also associates store ID or retailer ID with the encrypted PID. Database build system  520  may, for example, create and populate tables of targeted messages linked to qualified encrypted PIDs on retailer specific content database server  522 . 
     In operation, publication content database server  512  services queries from database build system  520  for targeted messages. 
     In operation, retailer specific content database server  522  receives as input updates of retailer specific targeted newsletter content from database build system  520 . Retailer specific content database server  522  functions to provide updated retailer specific targeted newsletter content to pharmacy publication system  406  via data links  104  and  112  and network  110  using, for example, File Transfer Protocol (FTP). 
     In exemplary embodiments, the functions of central CS  120  necessary to generate advisory messages associated with encrypted PIDs may be performed by suitably configured embodiments of pharmacy management CS  130 . 
       FIG. 6  is a flow diagram showing the flow of data in categorization and filtering system  516 .  FIG. 6  shows categorization system  610  and filtering system  620 . In exemplary embodiments, categorization system  610  and filtering system  620  may be structured as sub-systems all residing within a single computer, or, alternately, may be structured as a physically distributed CS interconnected by conventional communication hardware and software. 
       FIG. 6  also shows categories  612  which are outputs of categorization system  610  and inputs to filtering system  620 .  FIG. 6  also shows de-identified patient data output  628  of data warehouse  514  as input to filtering system  620 .  FIG. 6  also shows filtering system  620  outputting filtered de-identified patient data  622 . 
       FIG. 7  shows a flowchart depicting a method for operating system  1 . 
     In step  704 , patient PID and transaction data are received at pharmacy management CS  130 . For example, the patient&#39;s name may be input at retail system  404  and the patient&#39;s PID then retrieved from a database. 
     In step  706 , pharmacy management CS  130  encrypts the PID and de-identifies the individual transaction data. 
     In step  708 , pharmacy management CS  130  transmits de-identified transaction data linked to encrypted patient PID  422  to central CS  120 . 
     In step  710 , the central CS  120  updates its data store of individual transaction data records associated with the encrypted PID by adding the newly received individual transaction data thereto. 
     In step  712 , central CS  120  matches the encrypted PID with a targeted message using the encrypted PID as the search key. 
     For example, central CS  120  identifies a safety warning relating to a drug previously purchased by the patient having the encrypted PID, and associates that warning with the encrypted PID. 
     For another example, central CS  120  identifies a brand of a first drug previously purchased by the patient associated with the encrypted PID and associates with the encrypted PID marketing material for a different brand of the same drug or a brand of a different drug used for the same clinical indication as the first drug with the encrypted PID. 
     For another example, the central CS  120  identifies lack of purchase in a pattern of prior purchases of a first drug or drugs having the same clinical indication as the first drug and associates with the encrypted PID a targeted message identifying at least one brand of a drug or drugs having that clinical indication. 
     In step  714 , central CS  120  transmits a targeted message with an encrypted PID to pharmacy management CS  130 . 
     In step  716 , pharmacy management CS  130  prints targeted newsletter  410  in response to the receipt of the PID corresponding to the encrypted PID or in response to a transaction including that PID. 
       FIG. 8  shows a method of using system  120 . 
     In step  802 , categorization system and filtering system  516  links specific drugs to specific disease categories. For example, the drug Lipitor is associated with the disease category “high cholesterol patients” and the drug insulin is associated with associated with the disease category “diabetes patients.” 
     In step  804 , categorization system and filtering system  516  links de-identified data in data warehouse  514  to specific disease categories. For example, if a de-identified data record indicates that insulin has been purchased in the past, then that de-identified data record is allocated to the category “diabetes patients.” 
     In step  806 , categorization system and filtering system  516  further filters the de-identified data records allocated to patient categories created in step  804  to produce targeted subsets. For example, system  516  creates one subset for “high cholesterol patients” and one subset for “diabetes patients,” or subsets for patients in both categories or only one of each category. For example, the operations of step  806  may be implemented as a series of DBMS queries using, for example, SQL boolean logic, selection, and filtering operations. Such a series of simple queries may result, for example, in a series of intermediate, or work, tables, that are progressively more refined and contain progressively smaller subsets of qualifying de-identified data records. 
     In step  808 , database build system  520  links the targeted de-identified data record subsets produced in step  806  with appropriate targeted messages from publication content database server  512  where, for example, one targeted message for patients of both categories and one each for patients having only one of diabetes and high cholesterol. For example, database build system  520  may extract the encrypted PID from a de-identified data record and link the encrypted PID to an appropriate targeted publication. 
     In step  810 , database build system  520  updates retailer specific content database server  522  with targeted publications data linked to encrypted PIDs, and the store IDs with which the encrypted PIDs are each associated. 
     Embodiments target for informational communication subsets of de-identified patients whose individual de-identified transaction data satisfies complex selection criteria. Exemplary embodiments may target for an informational communication for example the following subsets of de-identified patients (A)-(N): 
     (A) Patients on two or more medications that clarify the exact disease for which they are being treated that a single medication does not properly identify; 
     (B) Patients taking two or more medications over time indicating their disease is requiring additional treatment to maintain or control its progression; 
     (C) Patients taking a sequence of drugs indicating what stage of therapy within the patient&#39;s disease, patient currently is in; 
     (D) Patients not currently being treated for a particular condition but who are likely candidates for drug therapy due to one or more risk factors as defined by other medications within the patients&#39; drug profile; 
     (E) Patients who are already compliant and or persistent on their medication regimen as defined by consistent use of drug therapy over time; 
     (F) Patients who have already switched from one medication within a drug class to another medication within same or different drug class known to treat the same condition; 
     (G) Patients who are using medications for chronic treatment vs. acute treatment for a particular disease by identifying patients receiving multiple new prescriptions for the same drug over time; 
     (H) Patients that should be eliminated from a patient subset due to a known drug contraindication as identified by additional drug therapy creating the contraindication; 
     (I) Patients that should be eliminated from a patient subset due to a known drug interaction as identified by additional drug therapy creating the drug interaction; 
     (J) Patients that have stopped taking their current medication as identified by being late for a prescription refill and reminding them to continue their therapy; 
     (K) Patients that have stopped taking their current medication as identified by being late for a prescription refill and inform them of other medications used to treat the same condition that may work better for them; 
     (L) Patients who have previously used medications to treat seasonal conditions that could benefit from similar medication therapy upon the next seasonal event; 
     (M) Patients who may be taking two drugs in combination that could benefit from taking one drug containing both individual drug ingredients; and 
     (N) Patients who may benefit from a refill reminder just prior to their prescription refill due date as identified by previous non-compliant prescription refill behavior. 
       FIGS. 9-14  disclose data schemas and algorithms useful in achieving the goals of embodiments A-N. 
       FIG. 9  shows database tables included in central server database  120 A. Database  120 A may be implemented using a relational database using several tables, for example. Alternatively, database  120 A may be implemented using Extensible Markup Language (XML) “tagged” data. The embodiment illustrated in  FIG. 9  has a relational database comprising interrelated database tables. The database of  FIG. 9  is characterized by a schema, which includes a set of interrelations between the exemplary component tables shown in  FIG. 9 . 
     Database  120 A of  FIG. 9  includes database table  902 , database table  904 , and database table  300 B′.  FIG. 9  shows data fields of database table  300 B′ including encrypted PID field  302 , and transaction data fields store ID field  310 , date field  334 , NDC field  336 , and quantity field  338 , and other non-identifying transaction data fields. Database table  902  of  FIG. 9  includes medication field  908  and NDC fields  906  . . .  932  for NDC 1  to NDCn respectively. As explained above, the NDC is typically a unique 11-digit, 3-segment number identifying the labeler/vendor, product, and trade package size of a medication. However, the NDCs may be represented in other ways. In each record, the NDCs identified in fields  906  . . .  932  are associated with the medication identified in field  908 .  FIG. 9  shows one-to-many relation  922  relating NDC field  336  of  300 B′ to NDC fields  906  . . .  932  of database table  902 . 
     Database table  904  of  FIG. 9  includes disease field  910  and medication fields  940  . . .  960 . For each record in table  904 , the medications identified in fields  940  . . .  960  are associated with the treatment of the disease identified in field  910 . 
     One-to-many relation  920  of  FIG. 9  relates medication field  908  of database table  902  to medication fields  940  . . .  960  of database table  910 . 
       FIG. 10  shows an alternative schema of central server database  120 A. Database  120 A includes database table  1002 , database table  1004 , database table  1070 , and database table  300 B′. Database table  1002  includes medication field  1006  and NDC fields  1008  through  1018 . Database table  1004  includes medication field  1020  and risk factor fields  1022  through  1044 . Risk factor fields  1022  through  1044  identify risk factors associated with the use of medications. Boolean values in fields  1022  . . .  1044  indicate whether the risk factor  1022  . . .  1044  is or is not associated with the medication identified in field  1020 . Database table  1070  includes risk factor field  1050  and medication fields  1052  through  1044 . Medication fields  1052  through  1054  identify medications associated with the risk factor. Boolean values in fields  1052  . . .  1054  indicate whether the medication  1052  . . .  1054  is or is not associated with the risk factor identified in field  1050 . 
     Fields  940  . . .  960  in table  904  and  906  . . .  932  in table  902  may store boolean values indication whether the corresponding NDC is or is not associated with the disease identified in field  910  or medication identified in field  908 , respectively. 
       FIG. 11  shows database table  1150  for implementing database  120 A′ using an alternative database schema.  FIG. 11  shows medication field  1102  and disease fields  1104  . . .  1140 . 
     Records  1170  . . .  1180  of database table  1150  have each have medication data field  1102  and disease data fields  1104  . . .  1140 . Using this schema, a “ 1 ” stored in disease data field  1104  of record  1170  means that disease  1  is treated using medication  1 . Likewise, a “ 1 ” stored in disease data field  1108  of record  1170  means that disease  1  is treated using medication  3 . 
       FIG. 12  shows database table  1250  for implementing database  120 A′ using an alternative database schema.  FIG. 12  shows medication field  1202  and NDC fields  1204  . . .  1240 . 
     Records  1260  . . .  1280  of database table  1250  have each have medication data field  1202  and NDC data fields  1204  . . .  1240 . Using this schema, a “ 1 ” stored in NDC data field  1204  of record  1270  means that NDC  1  designates medication  1 . Likewise, a “ 1 ” stored in disease data field  1208  of record  1270  means that NDC  3  also designates medication  1 . This means that NDC  1  has the same product segment value as NDC  3 . 
       FIG. 13  is a flowchart showing use of database  120 A as shown in  FIG. 9  to identify patients that take two or more medications associated with a specific disease. 
     In step  1302  code determines all NDCs associated with a specific patient using data table  300 B′. 
     Next, in step  1304 , code determines a first set of all medications associated with the first set of NDCs using data table  902 . 
     Next, in step  1306 , code determines a first set of diseases associated with at least two medications in the first set of medications using data in table  904 . 
     Next, in step  1308 , code writes the encrypted PID and the first set of diseases to a file in which the data structure associates the encrypted PID with the first set of diseases. 
     The foregoing steps may be repeated for each unique encrypted PID in field  1302 . 
     Alternatively, conventional SQL commands may be used to achieve the same association of encrypted PIDs and diseases. 
     At some point, code refers to a table or file in which different informational messages are associated with each encrypted PID set to associate with the set of diseases previously associated with that encrypted PID. 
     Embodiment (B) is any algorithm applied to the foregoing data that selects those de-identified patients taking two or more medications over time. The preferred algorithm uses database commands and boolean logic to determines that the disease afflicting these patients requires additional treatment to maintain or control its progression. 
       FIG. 14  is a flowchart illustrating a method for utilizing the database schema and database tables of central server database  120 A shown in  FIG. 9  to produce targeted informational messages for de-identified patients taking two or more medications over time. 
     In step  1402  code determines all NDCs associated with a specific patient using data table  300 B′. 
     Next, in step  1404 , code determines a first set of all medications associated with the first set of NDCs using data table  902 . 
     Next, in step  1406 , code determines de-identified patients taking two or more medications over time in the first set of medications using data in table  904 . 
     Next, in step  1408 , code writes the encrypted PID and the two or more medications to a file in which the data structure associates the encrypted PID with the two or more medications. 
     The foregoing steps may be repeated for each unique encrypted PID in field  1402 . 
     Alternatively, conventional SQL commands may be used to achieve the same association of encrypted PIDs and the two or more medications. 
     At some point, code refers to a table or file in which different informational messages are associated with each encrypted PID set to associate with the set of two or more medications previously associated with that encrypted PID. 
     Embodiment (C) is any algorithm applied to the foregoing data that selects those de-identified patients taking a sequence of drugs. This embodiment then uses an algorithm implemented with boolean logic that determines what stage of therapy within the course the of patient&#39;s disease that the patient currently is in. 
       FIG. 15  is a flowchart illustrating a method for utilizing the database schema and database tables of central server database  120 A shown in  FIG. 9  to produce targeted informational messages for de-identified patients taking a sequence of drugs. 
     In step  1502  code determines all NDCs associated with a specific patient using data table  300 B′. 
     Next, in step  1504 , code determines a first set of medications associated with the set of NDCs using data table  902 . 
     Next, in step  1506 , code determines a second set of medications associated with the set of NDCs using data table  902 . 
     Next, in step  1508 , code determines from table  300 B′ de-identified patients from step  1508  whose purchase dates for first and second sets of medications have specified time sequence using data in table  904 . 
     Next, in step  1510 , code writes the encrypted PID and the first and second sets of medications to a file in which the data structure associates the encrypted PID with the first and second sets of medications. 
     The foregoing steps may be repeated for each unique encrypted PID in field  1502 . 
     Alternatively, conventional SQL commands may be used to achieve the same association of encrypted PIDs and medications. 
     At some point, code refers to a table or file in which different informational messages are associated with each encrypted PID set to associate with the set of medications previously associated with that encrypted PID. 
     Embodiment (D) is any algorithm applied to the foregoing data that selects those de-identified patients not currently being treated for a particular condition. This embodiment uses programmed logic to correlate risk factors with a patient&#39;s use of certain medications which form the patient&#39;s drug profile, This embodiment then uses an algorithm implemented with boolean logic to determine which patients are likely candidates for drug therapy due to the one or more risk factors linked to the medications within the patient&#39;s drug profile. 
       FIG. 16  is a flowchart illustrating a method for utilizing the database schema and database tables of central server database  120 A shown in  FIG. 9  to produce targeted informational messages for de-identified patients not currently being treated for a particular condition. 
     In step  1602  code determines all NDCs associated with a specific patient using data table  300 B′. 
     Next, in step  1604 , code determines a first set of all medications associated with the first set of NDCs using data table  902 . 
     Next, in step  1606 , code determines a set of diseases associated with at least two medications in the set of medications using data in table  904 . 
     Next, in step  1608 , code determines those de-identified patients not currently being treated for a particular disease using data table  902 . 
     Next, in step  1610 , code correlates risk factors with a de-identified patient&#39;s use of certain medications which form the patient&#39;s drug profile. 
     Next, in step  1612 , code determines de-identified patients who are likely candidates for drug therapy due to the one or more risk factors linked to the medications within the patient&#39;s drug profile. 
     The foregoing steps may be repeated for each unique encrypted PID in field  1302 . 
     Alternatively, conventional SQL commands may be used to achieve the same association of encrypted PIDs and diseases. 
     At some point, code refers to a table or file in which different informational messages are associated with each encrypted PID set to associate with the set of diseases previously associated with that encrypted PID. 
     Embodiment (E) is any algorithm applied to the foregoing data that selects those de-identified patients who are consistent in their use of drug therapy over a period of time. This embodiment then uses an algorithm implemented with boolean logic to determine that this group is compliant or persistent on their medication regimen as defined by their consistent use of drug therapy over time. 
       FIG. 17  is a flowchart illustrating a method for utilizing the database schema and database tables of central server database  120 A shown in  FIG. 9  to produce targeted informational messages for de-identified patients who are consistent in their use of drug therapy over a period of time. 
     In step  1702  code determines all NDCs associated with a specific patient using data table  300 B′. 
     Next, in step  1704 , code determines a first set of all medications associated with the first set of NDCs using data table  902 . 
     Next, in step  1706 , code determines selects those de-identified patients who are consistent in their use of drug therapy over a period of time using data in table  904 . 
     Next, in step  1708 , code writes the encrypted PID and the first set of medications to a file in which the data structure associates the encrypted PID with the first set of medications. 
     The foregoing steps may be repeated for each unique encrypted PID in field  1302 . 
     Alternatively, conventional SQL commands may be used to achieve the same association of encrypted PIDs and medications. 
     At some point, code refers to a table or file in which different informational messages are associated with each encrypted PID set to associate with the set of medications previously associated with that encrypted PID. 
     Embodiment (F) is any algorithm applied to the foregoing data that selects those de-identified patients who have switched medications from a first medication within a drug class to a second medication within the same or a different drug class. This embodiment then uses an algorithm implemented with boolean logic to determine if the second medication is known to treat the same condition. 
       FIG. 18  is a flowchart illustrating a method for utilizing the database schema and database tables of central server database  120 A shown in  FIG. 9  to produce targeted informational messages for de-identified patients who have switched medications from a first medication within a drug class to a second medication within the same or a different drug class. 
     In step  1802  code determines all NDCs associated with a specific patient using data table  300 B′. 
     Next, in step  1804 , code determines a first set of all medications associated with the first set of NDCs using data table  902 . 
     Next, in step  1806 , code determines a first set of diseases associated with at least two medications in the first set of medications using data in table  904 . 
     Next, in step  1808 , code selects those de-identified patients who have switched medications from a first medication within a drug class to a second medication within the same or a different drug class. 
     Next, in step  1810 , code writes the encrypted PID and the first and second sets of medications to a file in which the data structure associates the encrypted PID with the first and second sets of medications. 
     The foregoing steps may be repeated for each unique encrypted PID in field  1302 . 
     Alternatively, conventional SQL commands may be used to achieve the same association of encrypted PIDs and first and second sets of medications. 
     At some point, code refers to a table or file in which different informational messages are associated with each encrypted PID set to associate with the sets of medications previously associated with that encrypted PID. 
     Embodiment (G) is any algorithm applied to the foregoing data that selects those de-identified patients receiving multiple new prescriptions for the same drug over time. This embodiment then uses an algorithm implemented with boolean logic to determine patients who are using medications for chronic treatment of a particular disease and those patients who are using those same medications for acute treatment of that disease. 
       FIG. 19  is a flowchart illustrating a method for utilizing the database schema and database tables of central server database  120 A shown in  FIG. 9  to produce targeted informational messages for de-identified patients receiving multiple new prescriptions for the same drug over time. 
     In step  1902  code determines all NDCs associated with a specific patient using data table  300 B′. 
     Next, in step  1904 , code determines a first set of all medications associated with the first set of NDCs using data table  902 . 
     Next, in step  1906 , code selects those de-identified patients receiving multiple new prescriptions for the same drug over time using data in table  904 . 
     Next, in step  1908 , code writes the encrypted PID and the set of multiple new prescriptions for the same drug over time to a file in which the data structure associates the encrypted PID with the set of multiple new prescriptions for the same drug over time. 
     The foregoing steps may be repeated for each unique encrypted PID in field  1302 . 
     Alternatively, conventional SQL commands may be used to achieve the same association of encrypted PIDs and medications. 
     At some point, code refers to a table or file in which different informational messages are associated with each encrypted PID set to associate with the set of medications previously associated with that encrypted PID. 
     Embodiment (H) is any algorithm applied to the foregoing data that selects those de-identified patients receiving a first drug who subsequently receive a second drug. This embodiment uses programmed logic to correlate risk factors with a patient&#39;s use of the first drug with the second drug to determine if the additional drug therapy creates a contraindication. This embodiment then uses an algorithm implemented with boolean logic to determine if these patients should be eliminated from a patient subset due to a drug contraindication. 
       FIG. 20  is a flowchart illustrating a method for utilizing the database schema and database tables of central server database  120 A shown in  FIG. 9  to produce targeted informational messages for de-identified patients receiving a first drug who subsequently receive a second drug. 
     In step  2002  code determines all NDCs associated with a specific patient using data table  300 B′. 
     Next, in step  2004 , code determines a first set of all medications associated with the first set of NDCs using data table  902 . 
     Next, in step  2006 , code correlate risk factors with a patient&#39;s use of a first drug with a second drug to determine if the additional drug therapy creates a contraindication using data in table  904 . 
     Next, in step  2008 , code writes the encrypted PLD and the set of medications to a file in which the data structure associates the encrypted PID with the set of medications. 
     The foregoing steps may be repeated for each unique encrypted PID in field  1302 . 
     Alternatively, conventional SQL commands may be used to achieve the same association of encrypted PIDs and medications. 
     At some point, code refers to a table or file in which different informational messages are associated with each encrypted PID set to associate with the set of medications previously associated with that encrypted PID. 
     Embodiment (I) is any algorithm applied to the foregoing data that selects those de-identified patients receiving a first drug who subsequently receive a second drug. This embodiment uses programmed logic to correlate risk factors associated with a patient&#39;s use of the first drug with the second drug to determine if the additional drug therapy creates a potential drug interaction. This embodiment then uses an algorithm implemented with boolean logic to determine if these patients should be eliminated from a patient subset due to a potential drug interaction. 
       FIG. 21  is a flowchart illustrating a method for utilizing the database schema and database tables of central server database  120 A shown in  FIG. 9  to produce targeted informational messages for de-identified patients receiving a first drug who subsequently receive a second drug. 
     In step  2102  code determines all NDCs associated with a specific patient using data table  300 B′. 
     Next, in step  2104 , code determines a first set of all medications associated with the first set of NDCs using data table  902 . 
     Next, in step  2106 , code selects those de-identified patients receiving a first drug who subsequently receive a second drug using data in table  904 . 
     Next, in step  2108 , code correlates risk factors associated with a patient&#39;s use of the first drug with the second drug to determine if the additional drug therapy creates a potential drug interaction. 
     Next, in step  2110 , code writes the encrypted PID and the set of medications to a file in which the data structure associates the encrypted PID with the set of medications. 
     The foregoing steps may be repeated for each unique encrypted PID in field  1302 . 
     Alternatively, conventional SQL commands may be used to achieve the same association of encrypted PIDs and medications. 
     At some point, code refers to a table or file in which different informational messages are associated with each encrypted PID set to associate with the set of medications previously associated with that encrypted PID. 
     Embodiment (J) is any algorithm applied to the foregoing data that selects those de-identified patients who are late for a prescription refill. This embodiment then uses an algorithm implemented with boolean logic to determine if these patients should be reminded to continue their therapy. 
       FIG. 22  is a flowchart illustrating a method for utilizing the database schema and database tables of central server database  120 A shown in  FIG. 9  to produce targeted informational messages for de-identified patients who are late for a prescription refill. 
     In step  2202  code determines all NDCs associated with a specific patient using data table  300 B′. 
     Next, in step  2204 , code determines a first set of all medications associated with the first set of NDCs using data table  902 . 
     Next, in step  2206 , code selects those de-identified patients who are late for a prescription refill using data in table  904 . 
     Next, in step  2208 , code determines if these de-identified patients should be reminded to continue their therapy. 
     Next, in step  2210 , code writes the encrypted PID and the first set of medications to a file in which the data structure associates the encrypted PID with the first set of medications. 
     The foregoing steps may be repeated for each unique encrypted PID in field  1302 . 
     Alternatively, conventional SQL commands may be used to achieve the same association of encrypted PIDs and medications. 
     At some point, code refers to a table or file in which different informational messages are associated with each encrypted PID set to associate with the set of medications previously associated with that encrypted PID. 
     Embodiment (K) is any algorithm applied to the foregoing data that selects those de-identified patients who are late for a prescription refill. This embodiment then uses an algorithm implemented with boolean logic to determine if these patients should be informed of other medications used to treat the same condition that may work better for them. 
       FIG. 22  is a flowchart illustrating a method for utilizing the database schema and database tables of central server database  120 A shown in  FIG. 9  to produce targeted informational messages for de-identified patients who are late for a prescription refill. 
     In step  2202  code determines all NDCs associated with a specific patient using data table  300 B′. 
     Next, in step  2204 , code determines a first set of all medications associated with the first set of NDCs using data table  902 . 
     Next, in step  2206 , code selects those de-identified patients who are late for a prescription refill using data in table  904 . 
     Next, in step  2208 , code determines if these patients should be informed of other medications used to treat the same condition that may work better for them. 
     Next, in step  2210 , code writes the encrypted PID and the first set of medications to a file in which the data structure associates the encrypted PID with the first set of medications. 
     The foregoing steps may be repeated for each unique encrypted PID in field  1302 . 
     Alternatively, conventional SQL commands may be used to achieve the same association of encrypted PIDs and medications. 
     At some point, code refers to a table or file in which different informational messages are associated with each encrypted PID set to associate with the set of medications previously associated with that encrypted PID. 
     Embodiment (L) is any algorithm applied to the foregoing data that selects those de-identified patients who have previously used medications to treat seasonal conditions. This embodiment then uses an algorithm implemented with boolean logic to determine if these patients could benefit from similar medication therapy upon the next seasonal event. 
       FIG. 23  is a flowchart illustrating a method for utilizing the database schema and database tables of central server database  120 A shown in  FIG. 9  to produce targeted informational messages for de-identified patients who have previously used medications to treat seasonal conditions. 
     In step  2302  code determines all NDCs associated with a specific patient using data table  300 B′. 
     Next, in step  2304 , code determines a first set of all medications associated with the first set of NDCs using data table  902 . 
     Next, in step  2306 , code selects those de-identified patients who previously used medications to treat seasonal conditions using data in table  904 . 
     Next, in step  2308 , code determines if these patients could benefit from similar medication therapy upon the next seasonal event. 
     Next, in step  2310 , code writes the encrypted PID and the first set of medications to a file in which the data structure associates the encrypted PID with the first set of medications. 
     The foregoing steps may be repeated for each unique encrypted PID in field  1302 . 
     Alternatively, conventional SQL commands may be used to achieve the same association of encrypted PIDs and medications. 
     At some point, code refers to a table or file in which different informational messages are associated with each encrypted PID set to associate with the set of medications previously associated with that encrypted PID. 
     Embodiment (M) is any algorithm applied to the foregoing data that selects those de-identified patients who may be taking two drugs in combination. This embodiment then uses an algorithm implemented with boolean logic to determine if these patients could benefit from taking one drug containing both individual drug ingredients. 
       FIG. 24  is a flowchart illustrating a method for utilizing the database schema and database tables of central server database  120 A shown in  FIG. 9  to produce targeted informational messages for de-identified patients who may be taking two drugs in combination. 
     In step  2406 , code selects those de-identified patients who may be taking two drugs in combination using data in table  904 . 
     Next, in step  2408 , code determines if these patients could benefit from taking one drug containing both individual drug ingredients. 
     Next, in step  2410 , code writes the encrypted PID and the one drug containing both individual drug ingredients to a file in which the data structure associates the encrypted PID with the one drug containing both individual drug ingredients. 
     Alternatively, conventional SQL commands may be used to achieve the same association of encrypted PIDs and medications. 
     At some point, code refers to a table or file in which different informational messages are associated with each encrypted PID set to associate with the set of medications previously associated with that encrypted PID. 
     Embodiment (N) is any algorithm applied to the foregoing data that selects those de-identified patients who exhibit non-compliant prescription refill behavior. This embodiment then uses an algorithm implemented with boolean logic to determine if these patients could benefit from a refill reminder just prior to their prescription refill due date. 
       FIG. 25  is a flowchart illustrating a method for utilizing the database schema and database tables of central server database  120 A shown in  FIG. 9  to produce targeted informational messages for de-identified patients who exhibit non-compliant prescription refill behavior. 
     In step  2502  code determines all NDCs associated with a specific patient using data table  300 B′. 
     Next, in step  2504 , code determines a first set of all medications associated with the first set of NDCs using data table  902 . 
     Next, in step  2506 , code determines selects those de-identified patients who exhibit non-compliant prescription refill behavior using data in table  904 . 
     Next, in step  2508 , code determines if these patients could benefit from a refill reminder just prior to their prescription refill due date. 
     Next, in step  2510 , code writes the encrypted PID and the first set of medications to a file in which the data structure associates the encrypted PID with the first set of medications. 
     The foregoing steps may be repeated for each unique encrypted PID in field  1302 . 
     Alternatively, conventional SQL commands may be used to achieve the same association of encrypted PIDs and medications. 
     At some point, code refers to a table or file in which different informational messages are associated with each encrypted PID set to associate with the set of medications previously associated with that encrypted PID. 
     In addition, the present invention may trigger the production of informational messages based on the following exemplary selection or filtering criteria: age under 90; gender; payer identification; cash payment; NDC; pill count; number of refills; refills remaining on the prescription; new or refill prescription; BIN (Bank Identification Number); NCPDP (National Council for Prescription Drug Programs) provider ID, which is an (individual pharmacy identifier; and DEA (Drug Enforcement Administration) number (encrypted). 
     For example, using embodiments of the present invention, a selection or filtering program can be designed to reach a patient population undergoing a specific drug treatment protocol and which falls within desired (specified) demographic and insurance parameters. 
     The present invention enables additional segmentation and targeting by using, for example, a unique pharmacy outlet identifier (pharmacy or store ID) and its geographic location as a proxy for a patient&#39;s home address in those cases where the proxy address will not re-identify the patient in conformance with HIPAA standards. 
     Using these targeted message criteria (also referred to as trigger criteria and as categorization and filtering criteria) in exemplary embodiments allows the delivery of variable and highly relevant information to a large number of different patient groups. The present invention thereby provides sophisticated patient service functionality by targeting highly relevant informational messages at specific groups of patients. 
     With the present invention, it is not required that all pharmacies provide targeted messages resulting from any or all trigger criteria. Each pharmacy or store or set of stores commonly owned may select to implement criteria of their choosing, for example, by marketing category, by manufacturer, or as a regulatory required message. 
     An advantage of the present invention is that the types of selection programs created reflect the drug information data available at any given moment in time. 
     Systems  120 ,  130  may collect and maintain a set of logs, which may contain, for example, accounting information related to newsletter production. These logs, for example, may be used to support billing functions and may also be used in troubleshooting. The logs may be processed and loaded by data load system  510  and may reside on data warehouse  514 , for example. 
     The following de-identified data, for example, may be captured by the system of the present invention in logs: prescription number; NDC (National Drug Code); age under 90; gender; pill count; refill number; new or refill; and refills remaining. 
     Logs may be transmitted to central CS  120  daily, for example, overnight, and then may, for example, be maintained by central CS  120  for a period of time (for example, 1 year) before being purged or may be maintained indefinitely. 
     Log data preferably is de-identified and maintained secure from unauthorized access. Log data can be aggregated to assess effectiveness rates for the advertising programs. 
     The inventors conceive of changes, for example, to the triggering, newsletter printing, and data logging processes, as needed. 
     In an embodiment, pharmacy management CS  130  combines a PID with a pharmacy chain ID, a store ID and optionally a transaction ID to form a combination ID. The combination ID may be associated with the PID or the encrypted PID. 
     A third party&#39;s CS may hash a vendor specific value (using, for example, the SHA-1 algorithm) into PIDs used in that vendor&#39;s retail store. This encrypted data may then be maintained outside of the control of the user of the central system  120 , for additional security. 
     The present invention advantageously allows HIPAA acceptable reduced logging of pharmacy data in locations where population size is below 20,000 for a 3-digit zip code and allows for the handling the age of patients 90 years old and above as 90 years old in those cases where the logging information will not re-identify patients in conformance with HIPAA standards. 
     Embodiments recognize that since a store location can serve as a reasonable proxy for a 5 digit zip code, that in the sparsely populated areas that fall into this category the correlation is likely higher. Logging may therefore depend on zip code and assorted population sizes of store geographic locations. Central CS  120  may, for example, aggregate transaction data for all (presently 17) restricted 3 digit zip codes into a single 3 digit zone 000. 
     Alternatively, for areas having small populations, PID information may not be transmitted out of the corresponding pharmacy stores and information logged in any CS may exclude PID information. In these alternatives, no informational messages are targeted based upon prior transaction history of an individual. Instead, information may be triggered in the pharmacy management CS by NDC, age, gender, or the like, although age and gender may not be logged. 
     Embodiments may use time intervals between prescription filling dates as a surrogate for actual date data. This alternative provides the ability to perform the desired analytics and correlations while minimizing the risk of re-identification. The time interval may be supplied by pharmacy management CS  130 . Alternatively, central CS  120 &#39;s software may calculate the time interval before writing information to logs. 
     Embodiments may advantageously use data from physician offices to provide, for example, helpful compliance dates (specifically around first fill rates). 
     Embodiments may advantageously link pharmacy and physician office data to allow maximal de-identified compliance solutions. 
     Embodiments may advantageously allow the addition of outside information model components in a compliant de-identified method. 
     Embodiments may advantageously allow the handling large-scale, multi-source, patient-level information. 
     Embodiments may advantageously aggregate de-identified patient data to develop additional service offerings. 
     The PID may be credit card numbers, pharmacy or health related identification numbers, and any other identification used by a patient. 
     With the present invention, there is no way for an un-authorized third party to determine a card holder&#39;s real identity even if central CS  120 &#39;s security is compromised. However, the present invention can still target the card holder for targeted informational messages because every time the retail store sees the customer&#39;s card number that number may be associated with the customer&#39;s transaction data already stored in association with some unique encrypted PID. 
     Typically, credit card transactions to pay for pharmacy purchases and corresponding pharmacy prescription order transactions are separate data transactions, in the sense that the information transmitted from the pharmacy management CS in association with the credit card identifier does not contain product or service purchase information. Moreover, in preferred embodiments, purchase of non pharmacy goods, such as purchases from a supermarket and corresponding credit card identifier or other personal identifier are stored in association with at least part of the credit card identifier or other personal identifier in one data structure, whereas purchases of pharmacy prescription products, are stored in separate data structures having no association between any identifiers in the two separate data structures. The inventors do conceive of, as a currently non-preferred embodiment, the de-identification and ID encryption process employable for both non pharmacy retail store POS transactions and pharmacy transactions. In such an embodiment, both non-pharmacy and pharmacy transactions for transaction inside of one retail store or in one retail store chain, may be associated with one another, and still effectively maintain pharmacy patient anonymity. 
     Some embodiments shown in the figures illustrate a division of processing among separate units or machines. This is not a requirement of the invention, and the various elements could be combined into fewer machines, be distributed among various machines differently, or, in fact, be contained in a single machine with a single computer. Embodiments utilizing such redistributions can be designed by practitioners in the relevant arts.