That the present invention requires to submit on February 19th, 2010, as to be numbered 61/306425 U.S. Provisional Patent Application rights and interests, and by reference it is contained in this clearly.
Embodiment
In the preferred scenario of the Distributed Computer System that can in the background of the managing clinical trials processing of financial transaction (more specifically about), support global access and use, the present invention is described.Yet the present invention can suitably process the transaction of all operations in the clinical testing, and further, complexity in the Distributed Computer System, that require the operability condition and the transaction that is typically the operability of decisive assessment.These abilities can become more clear in the ensuing detailed description of the present invention, wherein, identical Reference numeral is used to indicate the same part in one or more accompanying drawings.
With reference to figure 1, the preferred ambient of distributeddata processing system 10 comprises that typically traditionally,network 12 is fhe global the Internet by the interconnected Heterogeneous Computing machine platform of network 12.Server 14,16 and 18 typically is positioned at data center, and it is had by the clinical testing tissue or operates, and perhaps stays in the third party who is subject tosecurity constraint.Server 14,16 and 18 is typically local or keep theclient 20,22 that usually changes of any number bynetwork 12.
Purpose for current discussion is defined as juridical entity with tissue, is preferably represented by the dominant company as the parent company of given clinical testing.Tissue can comprise other companies, and described company is corporate entity independently, and such as wholly-owned branch, its financial result is summed up parent company.A tissue can be checked another tissue, if first tissue is the regulator (custodian) of second tissue, these two tissues are perhaps openly listed themselves in payment network by inviting or accepting to be linked in another business parnter's network that is organized into them.Current embodiment preferably requires each tissue and each research to have the regulator.Because may not all organizing all be the member of payment network, so the tissue in the network can create its hetero-organization and as the regulator of appointment.In case the current tissue of being managed by the regulator adds payment network, the tissue that then adds can be selected to the regulator of themselves tissue and have autonomous privilege.
The subject is the people who participates in clinical testing, typically, is the patient who participates in.
Agreement is to have described subject's admittance and get rid of criterion, comprise the document of the access time table of the process that will carry out and test and reason thereof.Agreement has been specified the statistical analysis technique that will use, main terminal point and less important (secondary) terminal point, and the method for listing all known safety problems and collecting adverse events.In brief, protocol overview the methodology of the experiment that will carry out, who can participate in and what expected result should be.
Sponsor is pharmacy, biotechnology or medical equipment company, or proposes to carry out research centre or the doctor of clinical testing, and test advocates that effectively limiting set and the test products of (claim) are safe.Equipment test can the test efficacy result and is used for the specific opinion of advertising goal.
The place is the facility that participates in clinical testing and register the subject based on the agreement Admission Criterion.The place can be nursing hospital, the research M.D. and relevant center of university hospital, management, elementary and professional health doctor.
The clinical research tissue is carried out the service relevant with research and development, and agreement is carried out the relevant service of various clinical test.
Regulator or supervision tissue are the tissues of the every other data of configuration, data, security, personnel and the tissue of being responsible for keeping default value, workflow.Tissue can be the regulator of another tissue or the regulator of himself.
Among the different distributions formula data that are suitable for potentially realizing enforcement of the present invention were processed framework, Enterprise SOA (SOA) was preferred.Effectively using unique, modular commercial information service is preferred as the solution constitutive element of the business information service system of expectation, because its allows the loose coupling of service and system, comprises especially aboutclient platform 20,22 terminal user.In the realization of current preferred clinical payment network,server 14 preferably represents clinical payment network application engine and system data storehouse.The Multi-instance ofserver 16 preferably represents different tissues, the electronics clinical system that keeps such as sponsor, CRO, place, by the third party, tissue, data warehouse and similar entity.The Multi-instance ofserver 18 preferably represents public service, such as bank, pay bills clearing house (payment clearing house), currency exchange and similar entity.
As shown in Figure 2, preferred SOA realizes that 30 adopt ESB (ESB) 32 as middleware (middleware) layer of interconnected different service requester 341-N and ISP 361-M.ESB 32 is preferably realized the message transferring structure, and this structure keeps (host) to increase the embedded set offunctional module 38, comprises service adapter and protocol converter, route and event control, and selectively, performance management and supervision instrument.At least from the angle of framework, the service requester 341-N that distributes is connected with supplier 361-M and is utilized consistent intergration model as one man to be connected toESB 32 and be connectedESB 32 connections, to realize the miscellaneous service process, described process is to realize that together the distributeddata processing system 10 of expecting is necessary.
The function ofESB 32 is the procotol conversion of deferring to based on ESB, message between route service requestor 341-N and the ISP 361-M, that the expression procotol is specifically asked and responded.The function of the built-inmodule 38 of other that can realize among theESB 32 comprises message transmission routing capabilities, the standardization mandate of supporting asynchronous message transmission (messaging), replace and strengthening, and authentication and audit control, comprise the interface that external perimysium reference LDAP serves.Also can realize the standard network service agreement by built-inmodule 38, shift (REST) such as Simple Object Access Protocol (SOAP) and statement sexual state.Messaging protocol also is used such as Microsoft's message queue (MSMQ), Windows communication infrastructure (WCF), the .NET of Microsoft framework, Intenet information server (IIS), Microsoft Decentralized transaction telegon (MSDTC).Service consumer also can implementation structure archive server in order to support hypertext (HTTP) and other agreements based on extend markup language (XML).Also can realize as required using specific and other private network agreements.
The optimum decision system framework of clinical payment network 50 usually as shown in Figure 3A.Main operation control and supervision are carried out by the system server 52 of intracardiac resident (host) in the system data by the owner or its representative of clinical payment network 50.Preferably, system data storehouse 54 also resides in the system data intracardiac.System server 52 and 54 interactive operations of system data storehouse to be providing in system-level configuration data, the clinical payment network 50 of definition access and be connected to control and the storage of the security information of the access rights between the different entities of various resources of clinical payment network 50, and to the Collection and analysis of the management data of the lasting use that reflects clinical payment network 50 and performance.Especially, system data storehouse 54 comprises the database (not shown) of preferably storing conventional data, it is disclosed in clinical payment network 50, and the given data storehouse in its marked network, participation and relevant tissue, research title and authentication and other are suitable for enabling the secured user and log in the secure data of accessing with data.System data storehouse 54 also preferably comprises is enough to carry out the data that the global metadata storehouse is found.Therefore, the security constraint of being managed, system data storehouse 54 is to a great extent as being exclusively used in system server 52 and being usually used for the network-accessible storage resources of other system and working, and described other system is in clinical payment network 50 or be connected to clinical payment network 50.
Preferably provide a plurality of application servers 56, to carry out at least the core component of the clinical payment application that effectively realizes clinical payment network 50.In a preferred embodiment, use software to realize clinical payment application as service (SaaS) and service-oriented service (SOA) framework.Application server 56 preferably distributes geographically.
Unlike traditional SaaS system, the data storage that clinical payment is used preferably is distributed to a plurality of organising datas storehouse 58 and a plurality ofdatas storehouse 60,62.Under the control of each tissue (as defined above) that participates in clinical payment network 50, keep these organising data storehouses 58 anddata storehouse 60,62.Tissue such as sponsor, CRO, pharmacy, laboratory, place and other entities can serve as the supervision tissue separately, and controls thus being included in the access of the data in corresponding organising data storehouse 58 examples and the one ormore datas storehouse 60,62.Preferably,data bins 54,58,60,62 has single supervision tissue separately.On the contrary, tissue can be the regulator in the organising data storehouse 58 of 60, the 62 and correspondences in one or more datas storehouse.Supervision tissue can the non-supervision tissue of granted access, typically, and by inviting or the mode of the business connection of restriction.This allows non-supervision tissue to access the qualifying part of the example in the example in supervision organising data storehouse 58 and one or morecorresponding datas storehouse 60,62 according to the functional role of non-supervision tissue.Like this, clinical payment network 50 can be deferred to security control and provide comprehensive access to all entities that participate in any specific research.
Finance and other services 64 usually are allowed to access and can access as required from clinical payment network 50.Preferably, these services 64 comprise that currency shifts, carries out the clinical system of the consulting of review of compliance, third party and the maintenance of organising data warehouse, and the exclusive data source.Especially, bank and kindred organization can provide finance service.Support on demand other services, and other services preferably include special CRO, electronics and the teledata service of catching with certain capabilities, by or represent the data warehouse that sponsor or other entities are kept.Preferably, the client application (show separately) that realizes clinical payment network 50 interfaces is provided for these services 64 so that the role that the supervision tissue limits can be suitably mutual with finance and other services 64.
Fig. 3 B has shown thepreferred realization 70 of organising data storehouse 58 ' example, data storehouse 60 ' example andapplication server 72 examples.System data storehouse 54 is structured to substantially the same with organising data storehouse 58 '.Organising data storehouse 58 ' receives the message that sends vianetwork 12 and corresponding service requester counterfoil (stub) 34 ' by ESB 32.Message is received in the inbox 74, and typically is preserved for checking.Organising data storehouse 58 ' comprisesdatabase 76, and it has been stored specific to the data of correspondingsupervision tissue.Database 76 provides the structured storage of data according to a plurality of patterns (schema).In a preferred embodiment, pattern is provided for book keeping operation, general institutional framework (such as personnel, sections (division), department (department), company), position, address, security information and mandate, budget, contract and CML supports, disposes, notifies and report and text.
Data storehouse 60 ' comprises message inbox 78 and research data base 80.The message that inbox 78 receptions also typically keep entering is in order to check.Research data base is preferably stored for the specific full detail of particular clinical trial.The data storehouse preferably provides structurized storage to be used for how clinical testing is set, and comprises the general information about sponsor, secondary sponsor, zone, companion (cohort), access, process, CRF, place, subject and event.Data is isolated in a research based on each data bins, that is, place under the control of supervision tissue and keep data storehouse 60 ', has got rid of unexpected or other the undelegated access to data.Effectively avoided mixing from a plurality of researchs and the Potential feasibility of organizing the data of sub-network from different supervision.
A potential thing followed problem is thatdistributed data storehouse 58,60,62 may be present in the territory different from the territory of application server 56.Traditionally, the transaction of cross-domain data storehouse has limited ability to realizing based on the Reliability Measures of transaction.Realize the preferred embodiments of the present invention advantageously utilize the ability of ESB 32 come fordistributed data storehouse 54,58,60,62 with application server 56 between message by ESB 32 transmit the reliable asynchronous transaction of establishment.Therefore, in requiring the situation of high reliability, by the ESB32 route messages.Otherwise, being limited by the reliability (margin) more than needed that reduces, application server 56 can utilize straight-forward network 12 to be connected to inbox and the resident database of data bins.
Application server 72 examples preferably are embodied as real or virtual high-performance computer system.Carry outapplication server processes 82, to adjust as to organize the message that receives and effectively be assigned to the data storehouse 58 ' ofapplication server 72 examples, the processing of 60 ' example.Preferably, when being queued in the inbox 74,78 that message is being associated, onnetwork 12, provide notice toapplication server processes 82, and with Notification Record in event database 84.If performance allows,application server processes 82 searching messages, and comprise in the situation of CML statement in message,CML evaluation engine 86 is used to carry out or process described CML statement.Execution result is the result object that comprises boolean (boolean) state.When the execution result state is true time, result object also will typically indicate the complete process that will carry out.If be false, then the execution of CML statement is stopped simply.
Be complete process, the result object of message represents to be transferred tomessage engine 87, and it provides the execution support to the set of possible complete process.In executing overall process,message engine 87 can be carried out one or more operations, and it typically relates to access and revise potentially data, access and modification by 54 storages of system data storehouse and is stored in data in tissue andresearch data base 76,80 the associative combination, and generates and comprise the new information of typically sequentially realizing the CML statement of some commercial operations.These are employedserver process 82 and transmit and send by EBS 32 by corresponding service provider counterfoil (stub) 36 '.
Traditional webserver 88 is provided as the part ofapplication server 72, so thatclient 20,22 user can access to netwoksapplication server processes 82, described user has the privilege of mandate, and this privilege allows the access at least to a certain degree to the data that keep in organising data storehouse 58 ' or thedata storehouse 60 '.Preferably, thewebserver 88 enables to present interface based on list to the user, and described user has the possible data access to system, tissue and data storehouse 54,58 ', 60 ' combination in any.Whenclient 20,22 user input byapplication server 72 new or proofread and correct after data the time, typically trigger one or more events, cause some combinations of the data modification in related tissue and the data storehouse 58 ', 60 ', and create the new information that transmits to one or more other data bins.
In optional embodiment of the present invention, functionally applied in anycombination server 72 is realized initiatively (active) data bins with organising data storehouse 58 ' ordata storehouse 60 '.These active data storehouses and the same distribution of preferred passive data bins.Obtained some efficient, comprised that application server postpones at the layout of the data center of organizational controls, the safe complexity of reduction and lower potential network.Dependence to larger clinical payment network 50 is lowered, and has created the Potential feasibility of part (if not fully) independent operation.
Such as the diagram of Fig. 4 to the preferred embodiments of the present invention, partly use Microsoft
Message queue (MSMQ)
cluster 92 is realized message engine 90.
MSMQ cluster 92 also is provided as one of ESB built-in module 38.Message (for example from research and organising
data storehouse 94,96,98 message) as long as be issued, just is transferred to
ESB 32, the then input queue 100 of existence in the
MSMQ cluster 92
1-NPreferably, each input queue 100
1-NBe assigned with the type of message of a kind to be processed.When message was received by
MSMQ cluster 92, the decoded and message of type of message was routed to corresponding input queue 100
1-NInput queue 1001-NBy one or more queue allocation devices (dispatcher) 1021-MRead progressively.Thesequeue allocation devices 1021-MCheck and assignment message to the target destination that message indicates, such as, for example study and organising data storehouse 108,110,112.The message of assigning is directed to the one or more inbox formations that are associated with each data bins 108,110,112, and the inbox that is associated with system data storehouse 54.Message invalid or that can not successfully be assigned is initially transferred to error queue 106.When then lining up, these failures are redirected to the inbox in system data storehouse 54 and are labeled for management or process examination.When performance allowed, failed message was sequentially passed throughqueue allocation device 1021-MDistribution.
Acquiescently, the message that receives in tissue or the research inbox 108,110,112 is kept for the representative of respective organization and considers.Described representative checks that preferably the inbox queue message also can optionally receive or refuse the action by corresponding message definition.When accepting, action is functionally carried out, and typically causes the renewal of data storage behind.In case finish described action, corresponding status message is generated and sends to input queue corresponding to data bins 1001-N, typically be used for turning back to and send on the order the preceding data bins of message.Can accept immediately some message (the simple especially status message of great majority, message acknowledgement and other nontransaction message) by the data bins inbox, and it is updated to the data storage of behind.Preferably be automatically accepted with message administrative, that management is relevant with configuration.
The message thatsystem data storehouse 104 receives is preferably given tacit consent to the processing by autonomous (autonomously).As mentioned, message is initially received and is lined up incorresponding data bins 104 inboxes.If be labeled for examination, message then remains on and is used for management or process examination in the inbox.Otherwise, summing up, message is processed, and if suitable, for suitable CML code block processing messages.
With reference to figure 5, preferably utilize the contract meta-language ofCML tools 120 structure clinical testing agreements to represent.The product oftools 120 comprises parameterized UI standard and parameterized executable code piece or machine-readable code.The UI specification description is made the user interface of the clauses and subclauses of affined, form-oriented for the CML statement of correspondence is tailored to allow the client user.Parameterized executable code piece comprises executable statement or preferably represents the statement set of source code fragment, this code segment can be explained, compile or be caught and can carry out, to realize the set of logic function and one or more complete processes, it functionally realizes corresponding CML statement together.
Given sourceclinical testing agreement 122 is checked to identify quantifiable and operation and performance-relevant contractual terms and conditions by the data entry operator.When such clause was identified, the data entry operator utilized the CML statement corresponding to user interface (UI) 124 inputs of form-oriented.The basic mode plate of the essence of clause is mated in selection most from theCML storehouse 128 that comprises the basic mode plate.Can create and add custom built forms and inCML storehouse 128, be used for ensuing re-using.Figure 10 shown from theCML storehouse 128 when selecting, the examplebasic mode plate 290 that shows to the data entry operator of UI list.The initial affined natural language of this template example is expressed as:
When?INPUT?subjects?have?a?subject?status?of?SELECT,pay?$AMOUNT
(whenInputThe subject haveSelectSubject's state the time, the payment $Amount)
Described template can present the parametrization element of any amount.Based on the special contract clause of considering in theclinical testing agreement 122, the data entry operator then can input the corresponding parameter of this template instances.By parametrization, affined natural language template instances is:
When?3?subjects?have?a?subject?status?of?On?Study,pay?$5000.
(when3Individual subject hasIn researchSubjective situation the time, the payment $5000)
Figure 11 provides the corresponding UI list of the parametrization value with these inputs to present the expression of template 300.The selectable value of inputting in the element with reference to the parameterisable of
CML storehouse 128 constraint templates.Especially, the list that shows among Figure 11 CML standard behind is preferably by CML template UI canonical representation.
{Integerl:integer}Subjects
Subject?Status?of{Strl:string}
{Amtl:decimal}
(
{ Integer1: integer } subject
Subject's state of { Str1: character string }
{ Amt: the decimal system })
Wherein, the word marking variable type that braces comprises, the italic word is the keyword of system definition.The label of types of variables example is represented as { label:type}({ label: type }).Notice that these specific patterns are clear for current discussion, other patterns comprise the expression of color and other grammers, also can use in practice.The UI standard is preferably separated with the parametrization value to be kept.
Corresponding CML template code slip gauge model is:
{Integerel:integer}[[Subjects]]
[[[Subject?Status]]]
{Strl:string}
Wherein double bracket sign dynamic object is also referred to as token (token), three brackets sign object properties.Therefore, such as definition, " Subject Status(subject state) " is the attribute of object " Subject(subject) ".The token attribute of the permission of token and correspondence is stored in theCML storehouse 128.
Especially, for CML template code slip gauge model, can further present code specification to produce functionally executable corresponding code segment.Preferably, present this code segment as source code fragment, can be used for carrying out by using interpreter or compiler to prepare source code fragment.As an example, above-mentioned CML template code slip gauge model can be rendered as the C# source code fragment:
if(GetSubjectsByStatus("{String}″).Count()=={integer})
ExecuteTransaction({decimal})
The below provides six other examples of the affined natural language canonical system of realizing in the preferred embodiments of the present invention:
Template (as from the CML library searching)
(1)For?Every?INPUT?Subject(s)with?Visit?SELECT?Status?of?SELECT-Record?Transaction
(for havingSelectAccessSelectState everyInputIndividual subject
The transaction of-record)
(2)For?Every?INPUT?Subject(s)when?All?CRFs?for?Visit?SELECT?are?Status?SELECT
-Record?Transaction
(when for accessSelectAll CRF are statesSelectThe time, for wheneverInputIndividual subject
The transaction of-record)
(when for accessSelectAll CRF are statesSelect, and the accessSelectThe process at placeSelectIt is stateSelectThe time, for wheneverInputIndividual subject
The transaction of-record)
(4)When?Local?IRB?Status?is?SELECT?or?Drug?Status?is?SELECT
-Record?Transaction
(when local IRB state isSelectPerhaps the medicine state isSelectThe time
The transaction of-record)
(5)When?CTA?Status?is?SELECT
-SetSELECT?to?INPUT
(when the CTA state isSelectThe time
-willSelectBe set toInput)
(6)When?Subject?Status?is?SELECT?and?SELECT?are?Greater?Than?INPUT
-Decrease?SELECT?by?INPUT?and?Record?Transaction
(when subject's state isSelectAndSelectGreater thanInputThe time
-willSelectReduceInput, and the record transaction)
Parameterized template (the clinical testing agreement is specific)
(1)For?Every?3?Subject(s)with?Visit?Screening?Status?of?Complete
-Record?Transaction
(for havingFinishAccessExaminationState every3Individual subject
The transaction of-record)
(2)For?Every?1_Subject(s)when?All?CRFs?for?Visit?Randomization?are?Status?Monitored
-Record?Transaction
(when for accessSelect at randomAll CRF are statesBe monitoredThe time, for whenever1Individual subject
The transaction of-record)
(when for accessWeek 1All CRF are statesFreeze, and the accessShieldingThe process at placeColonSpectroscopyIt is stateFinishThe time, for whenever1Individual subject
The transaction of-record)
(4)When?Local?IRB?Status?is?Approved?or?Drug?Status?isShipped
-Record?Transaction
(when local IRB state isCheck and approvePerhaps the medicine state isBe transportedThe time
The transaction of-record)
(5)When?CTA?Status?is?Executed
-SetScreen?Fail?Credits?to?5
(when the CTA state isExecutedThe time
-willExamine failed credit ratingBe set toInput)
(6)When?Subject?Status?is?Screen?Fail?and?Screen?Fail?Credits
are?Greater?Than?0
-Decrease?Screen?Fail?Creditsby?1?and?Record?Transaction
(when subject's state isExamine unsuccessfullyAndExamine failed credit ratingGreater than0Time-generalAuditor'sfailure credit ratingReduce1, and the record transaction)
CML template UI standard
(1)For?Every{Integer?1:Integer}Subj?ect(s)with?Visit{Visit1:Visit}
Status?of{VisitStatus?l:Visit?Status}
-Record?Transaction
(for every { Integer1: integer } individual subject of the access with { VisitStatus1: Access status } { Visit: access } state
The transaction of-record)
(when all CRF for access { Visit: access } are state { CRFStatus:CRF state }, for every { Integer1: integer } individual subject
The transaction of-record)
(when all CRF for access { Visit1: access } are that process { Procedure1: process } that state { CRFStatus:CRF state } and access { Visit2: access } are located is when being state { ProcedureStatus1: process status }, for every { Integer1: integer } individual subject
The transaction of-record)
(4)When?Local?IRB?Status?is{IRBStatusl:Local?IRB?Status}
or?Drug?Status?is{DrugStatusl:Drug?Status}
-Record?Transaction
(when local IRB state is that { IRBStatus: local IRB state } or medicine state are when being { DrugStatus1: medicine state }
The transaction of-record)
(5)When?CTA?Status?is{CTAStatus?l:CTA?Status}
-Set{CMLVariable?l:CML?Variable}to{Integer?l:Integer}
(when the CTA state is { CTAStatus l:CTA state }
-{ CMLVariable l:CML variable } is set to { Integer1: integer })
(when subject's state is that { SubjectStatus 1: subject Status} and { CMLVariable1:CML variable } are during greater than { Integer 1: integer }
-{ CMLVariable 2:CML variable } reduced { Ineger2: integer }, and the record transaction)
CML template code slip gauge model
(1)For?Every{Integerl:Integer}[[Subject(s)]]with[[[Visit]]]{Visit?1:Visit}
[[[Status]]]of{VisitStatusl:Visit?Status}
-Record?Transaction
(for every { Integer1: integer } individual [[subject]] of [[[access]]] with { VisitStatus1: Access status } { Visit: access } [[[state]]]
The transaction of-record)
(when all CRF for [[[access]]] { Visit: access } are [[[state]]] { CRFStatus:CRF state }, for every { Integer1: integer } individual [[subject]]
The transaction of-record)
(when all CRF for [[[access]]] { Visit1: access } are [[[state]]] { CRFStatus:CRF state } and [[[access]]] { Visit2: access } when locating [[[process]]] { Procedure1: process } and being [[[state]]] { ProcedureStatus1: process status }, for every { Integer1: integer } individual [[subject]]
The transaction of-record)
(4)When[[Local?IRB]][[[Status]]]is{IRBStatusl:Local?IRB?Status}
or[[Drug]][[[Status]]]is{DrugStatusl:Drug?Status}
-Record?Transaction
(when [[local IRB]] [[[state]]] is that { IRBStatus: local IRB state } or [[medicine]] [[[state]]] are when being { DrugStatus1: medicine state }
The transaction of-record)
(5)When[[CTA]][[[[Status]]]is{CTAStatusl:CTA?Status}
-Set{CMLVariablel:CML?Variable}to{Integerl:Integer}
(when [[CTA]] [[[state]]] is { CTAStatus l:CTA state }
-{ CMLVariable l:CML variable } is set to { Integer1: integer })
(when [[subject]] [[[state]]] is that { SubjectStatus l: subject Status} and { CMLVariable l:CML variable } are during greater than { Integer l: integer }
-{ CMLVariable 2:CML variable } reduced { Ineger2: integer }, and the record transaction)
Source code fragment
With reference to figure 6, roughly shown at least a portion in CML storehouse 128.No matter be stored among the XML or in other text documents or as data-base recording, the definable set of user (collection) 162 comprises the tabulation ofdynamic object 164 and the corresponding attribute that is allowed to 166.Exemplary object 162 and the corresponding attribute list that is allowed to 164 present in table 1:
Table 1
Theset 168 of system definition comprises types ofvariables 170 and predefined keyword 172.These typess of variables are preferably only relevant by attribute that share, system definition with keyword.Types of variables can be simple or definition.Simply type comprises, for example, and " integer " " character string " and " date ".The type of definition is the program object that the typical case defines in the support storehouse of use in the assessment when the operation of CML statement.Thus, the types of variables of " access (visit) " can be defined as zero or positive integer.The types of variables of " process (procedure) " can be defined as the array of " character string " type, and " process status (procedure status) " can be by enumeration definition.For example, the types of variables of " CML variable " can be established to allow to some systems or use the specifically access of value.
Listed the types ofvariables 170 of the simple and definition of example in the table 2:
The preferred embodiments of the present invention comprise the standard set of the types of variables of definition.The selection of the acceptable value of these typess of variables and correspondence derives from the research configuration information that is stored in thesystem data storehouse 104, and therefore all available for all researchs.Listed such as table 2, the types of variables of these standard definitions is by further standard is as follows:
{ Cohort} has selected the selection of all companions (or (arm) supplied with in treatment) in the research, such as " placebo ", " active medicine " etc.
{ Visit Type} is for selecting the selection of all access types of studying definition, such as " examination ", " in the research ", " catching up with (follow up) ".
{ Visit} is the selection of all access of having selected the research definition, such as " examination ", " access 1(Visit1) ", " all 12(Week 12) " etc.
{ Procedure} is for selecting the selection of all processes of studying definition, such as " vital sign (vital signs) ", " colonoscopy ", " health check-up " etc.
{ CRF} is for selecting the selection of all case report lists of studying definition, such as " laboratory ", " demography ", " medical history ".
The customization type of listing represents that typically thus, this defining variable type object all is available at the defining variable type object of the aspect regulation of supervision tissue for all researchs that described tissue relates to.
Although types of variables allows the registration of the affined value of type, the function of semantic and grammer carried out in keyword.Can on syntax, (syntactically) use keyword, readable with the unsophisticated language that increases the CML statement, and allow to use the specific keyword of industry in the place that may meet, although be general (generic) keyword.The placement of keyword in the CML statement as the element of natural language structure, allows the semanteme deduction is carried out in the operation that specific CML statement is wanted to carry out.Because the CML statement is relatively simple and clear, so semantic analysis is neither fuzzy not heavy yet.
Listed thepredefine keyword 172 of example in the table 3:
System and user-definedtemplate 174 comprise the predefined basic mode plate set 176 of system.Self-definingbasic mode plate 178 can be created and store by the user in order to re-use in the future.The set 176 of basic mode plate is by common, the significant combination structure ofobject 164,Class1 70,attribute 166 and key 172.
Providing ofdynamic object 164 andattribute 166 allows the new Action Events of user's dynamic creation and corresponding constrained attributes.When creatingdynamic object 164 and specifying one ormore attribute 166, the corresponding lists of object oriented and constraint is automatically added to CML storehouse 128.Use duringnew object 164 is used in immediately then that input consults clinicaltesting source contract 122 clause or select.In a preferred embodiment, these newdynamic objects 16 are used to describe the unique operation event in the clinical testing.Exemplary new object comprises 164: the medicine of research, research state, subject's state, dotted state, subject's access, process and contract status.In the establishment of self-definedtemplate 178,dynamic object 164 also is called as token.Action Events the event date that is associated appears having each time.
Object properties have defined upstate or the operating result of the result field of definition in the dynamic object.Given dynamic object " subject's state ", result's object properties type can be { string(character strings) }.Wherein a plurality of object properties can be associated with " subject's state " field of dynamic object, and effectively deduction can be { text box } display module of independently selecting on { the text field } or { tabulation }, is used for presenting a plurality of object properties.Perhaps, during theparametrization 130 of basic mode plate, can limit clearly result field, show that with the UI with { character string } UI of types of variables, " patient's states " shows the UI display module type of description and { tabulation }.
In a rear example, after the related identity characteristic that has stood clinical testing, test site and pilot survey person filters, CML template UI list will present the list element of the object properties filling that is associated by the dynamic object with " subject's state ".In a case, the object properties that are filtered can be " (dropped) that leave behind ", " registered ", " premature termination " and " finishing ".For different investigators or the place in the same test, filtered object properties can be " activity ", " (pending) undetermined " and " inactive ".
Return Fig. 5, resolve and generate (132) parameterized CML statement.When the CML statement of resolving such as CML template UI canonical representation, the field of appointment, description, display module and value all are identified.If suitable, any information of losing all is acquiescence.If necessary, carry out inference operations with identification and select suitable information to finish CML template UI standard.Preferred result is the UI mark standard of suitable qualifiedization (qualified), and it has defined and can be used for the Form Element that allows the user to input and edit CML statement value.In currently preferred embodiment of the present invention, CML template UI standard behind is enough descriptive, to serve as the useful markup language in the territory of the present invention.Can alternately use other UI markup languages, comprise for example XML user interface languages (XUL).Generating (132) step also can be used for (as needing) preparing follow-up storage and using the form of organizing and adjusting CML template UI standard.
Similarly, resolve (132) CML template code slip gauge model, to use default setting and to infer any additional information of the CML template code slip gauge model that is suitable for creating complete formation.Generate (132) parameterized executable code piece by CML template code slip gauge model.This code block preferably represents to comprise the code segment of the source statement of one or more C# of Microsoft.Although C# is current preferred, the operation ofcode generation 132 can adapt to the executable code piece that produces many other source language.Java, JavaScript, Lua and Go are suitable alternate source language.The preferred executable code piece of preparing to generate is used for source form storage, although can the compiled example of buffer memory.
The CML template UI standard that generates and the function of CML template code slip gauge model (the executable code piece that comprises generation) are finished with logic and are verified subsequently 134.If any aspect of standard is imperfect or consisted of irrelevantly, comprise the inconsistent of any logic, can not explain error-freely or compile, perhaps, any other authentication failed occurs, then parameterized template is returned 124, is used for being checked and correction by the data entry operator.
When CML template UI and code block standard are identified when effective, create thetemplate record 136 that preferably is fit to be stored in the resident database of data bins.Parameterized CML UI standard 138 and parameterized CML code block standard 140 are copied to an aspect of template record 136.Then, preferably be stored in this respect in the data bins example 142 of tissue class.
The dynamic object that before had been selected as for assessment of standard 138,140 parametrization value preferably is stored in another independent aspects of template record 136.This rear aspect preferably is stored in the clinical testing that is used forcontract 122 correspondences in source in the data storehouse 144.Therefore, study specific parametrization value, as token, stored discretely with CML UI and code block standard 138,140.
Gather as the collection of CML statement by the set that the contractual terms and conditions that comprise in thesource protocol 122 are provided, functionally realized the robotization of sourceprotocol.Source protocol 122 can be the compiling of one or more agreements, and these one or more agreements represent together and define the essential operation of the Study of the Realization agreement and process event.By adding, revise and remove modification and other changes of making through CML statement reaction corresponding to the contractual terms and conditions that change.Therefore, the impact ofchange source protocol 122 clauses is minimum.The CML statement is actually atom (atomic).
As mentioned above, in response to the transmission (as passing through transmission of messages) of Action Events, carry out effective execution of CML statement by the example of the application server processes 82 carried out at application server 56.With reference to figure 7, the initial generation meeting of Action Events is in response to the different actions of any number of taking sponsor, CRO, investigator and other (comprising other automated systems mutual from distributed data processing system 10) and occur.The example action that the user carries out is the increase of fresh information, such as carrying out by data typing list.In case submitted the data of list input to, Action Events is generated 192.Described event is associated with event relateddata 194, comprise especially the data that are associated with the generation of event, such as the data that provide by data typing list, and sign clinical testing and be enough to identify the tissue that is associated and the information in data storehouse, corresponding investigator and place and relevant details, if be suitable for.Preparemessage 196 and transmit 198 these message by corresponding service requester 34.Route messages to the application server processes that server 56 is carried out bycluster 92.
With reference to figure 8, as realizing that in a preferred embodiment of the invention the CML statement is carried out engine 210 and is embedded in the application server processes 82 of carrying out on the server 56.Engine 210 initially receives Action Events by the data storehouse 60 ' that is associated, 62 ' message inbox.When each Action Events received (212), the data that event is relevant are saved to event database 214, and will indicates new Action Events to be received and effectively send to CML engine 210 in the notice that waits unexamined.
Initial step when processing new Action Events is checking 216 described events.Carry out source and the data integrity of checking to examine Action Events.Preferred checking and the fraud detection of adding carried out tested, as making Action Events can be used for the precondition of CML assessment.
The Action Events of authentication failed must be subject to further examination.Preferably, described event is passed to examination process 218, typically relate to human intervention to a certain degree.In checking process 218, the examiner can accept, refuses or edit and resubmit described Action Events with retry checking (216).
Suppose Action Events by all validation tests or represented CML engine 210 and receive, Action Events is released 220 to (pending) undetermined state, waits for the CML assessment.
Preferably, carry out realization in the engine 210 such as the CML statement, CML statement evaluator can move in some different patterns, depends on for example desired level of performance of CML statement execution engine 210, typically as by the event handling capacity measures with concluding the business to postpone to limit.Current available CML statement evaluator pattern comprise increase progressively, fully, the expectation and the prediction.Increment mode is preferred default mode.In increment mode, when determining CML statement to be assessed (preferably being defined as the assessment set), only consider the new valid function event 228 that within a upper assessment cycle, received.A upper assessment cycle is defined as the CML statement and carries out the complete assessment time period afterwards that engine was finished event 210 last time.If the Action Events 230 of assessment set-inclusion " all places " or research range, such as research state, then assessment preferably switches to complete pattern immediately.
For complete pattern, when determining the assessment set, select all current, effective Action Events 232.In desired pattern, the operation of CML assessment is with pattern is basically consistent fully.Also comprise the additional expectation set of Action Events.Particularly, this expectation set of event be that those indicate according to the correlative study agreement, expection has occured but carried out the event that engine 210 receives by the CML statement not yet.In predictive mode, the operation of CML assessment is again basically identical with complete operation mode.The additional operations event of considering when determining additional prediction sets comprises from current point in time and beginning until clinical testing or research finish all operations event that is received not yet.
In case set up the assessment set, the uniqueness set of the research position that CML statement evaluator is quoted in gathering with regard to definite 234 described assessments.Only have the CML statement that is associated with these research positions to need evaluated.The research position is typically identical with the place with lasting physical address, such as hospital, clinic or clinic.
To each research position of identifying, only the CML statement corresponding to the contractual terms and conditions that are associated with the particular studies position need to be selected for assessment 236.In one embodiment, the CML statement also can be operated event type further classifies, so that in case importing or input operation event data only have the CML statement meeting of selected type evaluated, improve thus the efficient of CML statement evaluator.
If the Action Events that the subject is correlated with occurs 238 and is being used for the assessment set of particular studies position, then assess the CML statement of 240 correspondences for each subject who quotes.The subject who does not appear in the assessment set is not processed.If the event that does not have the subject to be correlated with appears at the assessment set for the particular studies position, then only about described research position assessment 248CML statement once.
The CML statement is preferably by CML statement template (CMLStatementTemplate) class definition.This class comprises two important attributes." CML " attribute comprises CML template UI standard, and it is resolved and be used for presenting the value that UI controls to collect the variable that defines for each dynamic object attribute and given CML statement.The value of collecting preferably is stored in the event database 214, as name/value to " token ".Another attribute, called after " code (Code) " comprises CML template code slip gauge model.This standard comprises source statement, and, compiling resolved when source statement or when processing, generation can be employed machine readable code that server 56 examples are carried out and can the value of bearing results.In operation, CML statement evaluator determine to carry out produce for the CML statement, for the end value of Action Events, need to determine whether transaction.In a preferred embodiment, the code segment that CML template code slip gauge model provides comprises " mark (marker) " of definition, and it identifies specific token and attribute.Before carrying out described code segment, described mark is identified, and by to the on-the-fly modifying of code segment, the corresponding parameterized value that described mark is used to template token example substitutes.
In a preferred embodiment of the invention, defined general (generic) CML statement evaluator (CMLStatementEvaluator) base class.(assessment) method that this class has realized is empty " Evaluate() ", its parameter of accepting any amount is with the enhancing of supporting future and compatibility backward.Carry out " Evaluate() " method and can return and enumerate (enumeration), be called " CML statement result (CMLStatementResult) ".Described empty appraisal procedure can be heavily loaded by the class that any CML statement evaluator is derived.Described base class also provides many protection attributes and method, and it can be derivatized class and use.
As realizing in the preferred embodiment that in order to assess the CML statement, CML statement evaluator at first checks to determine whether CML statement evaluator example has been compiled for CML statement.Because the code that tabulation generates for the parametrization of specific CML template code slip gauge model and token and variable is identical, thus described source code fragment can be compiled once and buffer memory in order in follow-up assessment, use.When lacking the example that has compiled, corresponding source code is dynamically revised, and then calls the executable code maker.Particularly, source code fragment is resolved so that Marker exchange is become corresponding token property value and variate-value.The source code that obtains next packaged (wrap) in the class of expansion CML statement evaluator.Then, call the example that the C# compiler produces compiling.This CML statement evaluator object then is used for for this reason unique (unique) CML statement evaluation operation event by CML statement evaluator.
CML statement evaluator is realized necessary environment, to carry out the CML statement evaluator object of instantiation by calling void " Evaluate() " method.Functionally, the logical condition test for the value that defines in the code segment each Action Events, compiling in the assessment set of Action Events is carried out in the execution of the code segment of compiling.Order for the condition of Action Events assessment preferably is not restricted to order.For example, the time sequencing of the assessment of Action Events can appear at before another Action Events, during and afterwards.
When complete, return CML statement result object as a result of 242.If this result 242 is mated with the definition value corresponding to false (False), then the assessment of CML statement stops 250.Unless all operations event of CML statement requirement occurs, otherwise assessment result 242 will be false.
If result 242 is corresponding to true (True) value of definition, all operations event that then is associated with described transaction is satisfied, but the frequency of CML statement or amount assembly also are not met.For example, if the counting requirement specified in the CML statement, such as " for per 2 subjects ", then corresponding transaction terms can be saved 252, to keep state in the lasting assessment of CML statement.
When all Action Events that are associated with the CML statement all are met and all frequencies of CML statement or amount assembly the assessment result 242 that transaction is true (TrueWithTransaction) can occur when also all being met.In this case, create CML transaction (CMLTransaction) object, and with the description in the source that indicates research position (PI), the contract owner, sponsor or CRO, the Action Events that satisfies described transaction and those events and the information initializing CML that creates finance or needed other information of non-financial transaction (CMLTransaction) object of concluding the business.The data bins inbox that this object then is sent to contractor (contractor) tissue for the treatment of.Apparently, the CML assessment only relates to the assessment that determines whether and when should generate the condition of transaction.The details that the CML assessment is concluded the business behind to reality does not limit (agnostic).
Fig. 9 has shown the example transaction flow 260 of the effective application that clinical payment network 50 is described.Whenever sponsor and CRO are required that in the mode of clinical testing agreement regulation to the investigator or when represent the investigator and providing reimbursemen and other and pay, transaction flow 260 typically appears in the clinical testing agreement relevant with other, such as the clinical research agreement.Transaction flow 260 has presented effective collection of reimbursemen information, approval examination and has caused finishing of fund expenditure.
Investigator 262 comprises doctor, hospital and other carings supplier, and it relates in the execution of particular clinical trial and management.The subject 264, such as patient participant, typically with the registration of carrying out subject 264 and provide lasting treatment and the investigator 262 of subsequent access is associated.These subjects 264 also are identified as participating in same clinical testing.Cum rights (Affiliate) 266 also directly is associated with subject 264, and is general under investigator 262 guidance.Cum rights 266 is laboratory, pharmacy and other support products ﹠ services providers typically.
Preferably, when entering test, investigator 262, subject 264 and cum rights 266 are allowed through corresponding tissue and thedata storehouse 58,60 of application server 56 instance accesses test.Access is constrained to the characteristics role of reflection investigator 262, subject 264 and cum rights 266.When the potential expense repaid occurring, for example comprise the equipment purchase payment, investigator 262, subject 264 and cum rights 266 can suitably access research relevant tissue anddata storehouse 58,60, to submit expense report, expense support to and to consider that payment request is behind required or other essential information.The interface that typically resides in the list Network Based that thewebserver 88 on corresponding application server 56 examples (also being associated with corresponding tissue and data storehouse 58,60) provides by use is carried out access.
In this example, application server 56 examples that are associated with test organization anddata storehouse 58,60 serve as book keeping operation engine 268.Also namely, the reception of reimbursemen request causes selection and the assessment of CML statement, and described CML statement collective realizes or relates to qualifiedization payment request and relevant book keeping operation commercial operation.This selection of CML statement is implicit expression, and the sequence of operations that counts (posting) and process event that origin comes from reimbursemen request and relevant information cause.The details of the commercial operation of as a result of carrying out is defined in theapplicable source protocol 122, and is reduced to the correspondence set of CML statement.
Therefore, for example, when assessment, the set of CML statement has defined step by step collects and organizes reimbursemen data and examiner serializing described document the in advance business process of approval to obtain arbitrarily need of interval by selecting to stipulate that provides.The reimbursemen request of subject 264 and cum rights 266 can be different interval operation, and checked by different examiners that described different examiner is classification specialties to these dissimilar requests.
To ratifying in advance received degree, the possibility of result is that book keeping operation engine 268 is typically the time and represent investigator 262, subject 264 and cum rights 266 and generatebill 170 or other financial documentations, it is adapted to pass through the different tissues role of CML statement definition, and such as control protocol reimbursemen request regulation, that functionally provide and the adequacy of support information.Again give necessary examiner with the bill serializing of generation when needed, to obtain bill approval 272.Approved bill 272 then is routed to payment engine 274.As the book keeping operation engine, payment engine 274 also is application server 56 examples that are associated with test organization and data storehouse 58,60.These application server 56 examples functionally are characterized as payment engine 274, have reflected the execution of the payment business process that realizes by the sequence of events of being initiated by the reception of approved bill 270.
Again, depend on the details of the CML statement that when assessment collects, can be from payment engine 274 to sponsor 276 and arbitrarily CRO 278 send the final message that ratifies a motion.These tissues 276,278 move, and so that final approval to be provided, it is implemented as tissue that (if necessary) be associated to application server 56 examples with expression payment engine 274 and data storehouse 58, the 60 one or more message that send.These message represent the event to payment engine 274 when received.The modes of payments that depends on the ground appointment of controlling test protocol function, payment engine 274 is carried out control reimbursemen mode and business process regularly.Such as dotted line indication, fund directly or by CRO 278 shifts from sponsor, and is needed as replenishing the running account that sponsor 276 that payment engine 274 manages effectively or CRO278 provide.Investigator 262, subject 264 and cum rights 266 are pointed to respectively in suitable payment.In addition, can process similarly reimbursement by carrying out these commercial operations.
It should be noted that, clinical testing uses Payment Card to provide payment to the subject of particular studies usually, but such as credit card, debit card, comprise and stored electronic funds or to prepaid card, ACH payment or the Electronic Transfer of the card of the repetition loading of signing and issuing of the link of corresponding savings account or check.This arrangement allows investigator, CRO or sponsor to send payment to the subject, be used for travelling and have a dinner, other payment events that the finishing of test miles upright stone tablet, office's access and clinical testing agreement are typically stipulated.Therefore, triggering is to the timetable of the payment events of subject and tissue and the set that requirement can be reduced to CML statement discussed above.
The use of electronic fare payment system has a lot of advantages, pays the needs that then subject seeks to repay from sponsor such as having eliminated the investigator.Main shortcoming is that these systems have caused the additional opportunities of swindle (fraud) and processed wrong potential possibility.
In a preferred embodiment, need to not implement fraud detection based on the test subject based on test site.This keeps the place by system server 52 for each test site at least in part and specifically swindles mark and realize.The swindle mark is preferably based on the subject who receives for the test subject assessment that is associated with that test site and pays request.Particularly, assessment is advantageously based on other source documents of clinical testing agreement or operation or the event of execution clause.Therefore, expecting to drive to given payment request by contract behind is the estimation of the possibility of swindle.This is for the clause examination payment request of agreement itself, and the permission swindle reduces basic (if not complete) robotization of processing.Alternatively or as a supplement, payment request and electronic data from each clinical management system can be compared, such as the system of IVRS, IWRS, CTMS, EDC, DMS and other storage clinical datas, the difference during with identification payment request.The post analysis of previous test can be used to set up the swindle mark of expection and identify potential swindle or the mistake of before payment payment request.
In a preferred embodiment, payment engine 274 comprises the fraud detection engine, and it is to system server 52 report, for example, and payment events identifier, payment events type information and desired event data.This information can be used to determine or implicitly define payment events and allow regularly or order.Can be the calendar absolute time regularly, or relative time, such as fate or the fate before or after the access date that arranges from the on-test process.The payment window that test protocols can allow for given payment events definition.Can be by the timing of reality and the payment window of permission relatively being assessed the payment request corresponding to that payment events.Request outside the window and the frequency of request can be marked as swindle, or are weighted to indicate the possibility of swindle.
(ongoing) payment events by continuing of each place, with subject's processing concomitantly, submit to or the approval payment is asked for the experimental test person.Then, the swindle engine receives and processes the payment request in view of the test site that starts.Therefore, when asking for each payment of payment requirement assessment of being stipulated by test protocols, swindling engine can be that the weighting possibility of swindling is updated to the correspondence swindle mark that test site is kept based on request.
Describe operation with the swindle engine and combined, can in the clinical testing of using Payment Card complementation test subject, further reduce swindle.In clinical payment network 50, each Payment Card is associated with corresponding test subject and described subject's main experimental place.At duration of test, preferably in response to the payment request, the swindle engine can be retrieved corresponding transactions history.
Current and transaction history be evaluated identifies difference with the transaction sequence of expecting and quantity.If identify any difference, the swindle mark that is associated with that test site is updated to the weighting function of the difference that identifies.Can be calculated by each swindle value that weighting function is determined, perhaps by accurately or experience ground determine, with the possibility of swindling in the scene that reflects described place payment transaction history.Preferably, if the swindle mark surpasses the threshold value of regulation, the payment request meeting that the subject who then is associated with that test site makes is vetoed.
Addedly, or alternatively, can in the payment transaction that determines approval, rejection or tagging subject, consider the integral body swindle mark in place.For example, if timing, quantity or other aspects of specific subject's payment request are different from the standard (norm) of determining according to other patient participants' event, if the integral body in described place swindle mark is very low, then that payment still can be allowed to, if the swindle mark in described place is very high, even mark still is lower than the threshold value that defines for refusing all payment requests, payment is still vetoed.
Therefore, illustrated and be used for the managing clinical trials effective computer implemented system and method for (comprising the payment of carrying out according to the scene of the distributed clinical testing of the clause of clinical testing agreement).Although the present invention specifically is described with reference to the clinical testing of human oriented, the present invention also is applicable to require effectively and other complication systems of reliable communication, and additional definitions and effectively manage security consideration by the data of described system route.
Under the above-mentioned explanation of the preferred embodiments of the present invention, those skilled in the art recognizes many modifications and the change of the disclosed embodiments easily.Therefore should be appreciated that, within the scope of the claims, the present invention can be practiced as the mode different from above description.