Clinica JMP è stato rilasciato 11 anni fa specificamente per l'analisi e la revisione di studi clinici in corso incentrati su dati standardizzati e strutturati. L'intento era che un revisore ricevesse i dati per la revisione a intervalli regolari (ogni settimana o ogni mese) per cercare segnali di sicurezza e/o efficacia utilizzando report pre-programmati, consentendo al revisore di autogestire e approfondire i dati su -richiesta. La speranza era quella di accelerare il processo di revisione e di scoprire anomalie che altrimenti potrebbero non essere rilevate quando si esaminano tabelle, elenchi e cifre statiche.
Inoltre, un obiettivo del software era quello di alleviare l'onere imposto ai team di programmazione che producono i dati richiesti e rapporti standardizzati per i revisori. Ciò richiedeva molto tempo per eseguire programmi o modificare programmi/script/macro per soddisfare le esigenze dei revisori e su base frequente. I gruppi di programmazione e biostatistica in genere vogliono concentrarsi su dati e report che sono unici per lo studio invece della solita tabella o grafico che è abbastanza coerente da uno studio all'altro, consentendo loro di prestare un'attenzione più solida e senza distrazioni alle anomalie specifiche dello studio che richiedono più conoscenze statistiche o algoritmiche.
Per la maggior parte, JMP Clinical ha raggiunto questi obiettivi, a meno che non si tratti di organizzazioni che hanno molti studi che devono essere monitorati e/o hanno frequenti aggiornamenti dei dati. Ciò comporta un nuovo onere per i team di gestione dei dati e di biostatistica per aggiornare gli studi all'interno di JMP Clinical o per i revisori che non erano così abili nel processo o non avevano tempo. Interessante è stata anche la possibilità di modificare alcuni dei report all'interno di JMP Clinical e/o eseguire lo stesso modello di revisione su base pianificata. La richiesta di automazione ed estensione delle capacità di JMP Clinical è diventata una richiesta frequente.
Inserisci le API di JMP Clinical. Intorno a JMP Clinical 6, abbiamo introdotto il framework e l'infrastruttura per rendere possibile l'accesso basato su API a funzioni/processi comuni a livello di programmazione. In JMP Clinical 7, le API sono state rilasciate e rese disponibili utilizzando JMP Scripting Language (JSL). Nella versione 8 (l'ultima) sono state rilasciate più funzionalità. Questo post non entra nei dettagli dello sviluppo delle API. Invece, si concentra sull'uso pratico di essi in modo che tu possa trarne vantaggio.
Condividerò una serie di post su come invocare e utilizzare le API. Iniziamo in modo semplice introducendo la sintassi di base e il loro utilizzo. Quindi avanziamo in usi più sofisticati durante l'utilizzo di JSL. Infine, combiniamo le due categorie di API invocate all'interno di alcune JSL.
Per coloro che non hanno familiarità con i termini Studio, Revisione, Rapporto e Modello di revisione nel contesto di JMP Clinical, vedere questo collegamento fare conoscenza. Inoltre, coloro che non hanno familiarità con JSL dovrebbero leggere e saperne di più su questo collegamento . La conoscenza di entrambi è necessaria per comprendere l'uso delle API.
Per questo post, iniziamo con le due categorie principali e ciò che è possibile. Le due categorie principali sono: le funzioni relative alla gestione dello studio (JMPClinicalStudyManagerAPI) e le funzioni relative alla revisione (JMPClinicalReviewAPI). L'idea è di replicare ciò che può essere fatto all'interno dell'interfaccia utente (principalmente i clic del pulsante) in cui non è necessaria una decisione da parte dell'utente (come aggiornare i metadati per gli studi con nuovi dati o aprire un modello di revisione ed eseguirlo per uno studio specifico). Di seguito sono riportate un paio di immagini che evidenziano i pulsanti relativi alla sezione Gestione dello studio e alla sezione Revisione.
Funzioni di gestione dello studio relative a JMPClinicalStudyMangerAPI
Funzioni di Review/Review Builder correlate a JMPClinicalReviewAPI
L'API è pensata per eseguire attività di routine e automatizzarle, come aggiornare gli studi con nuovi metadati o aggiungere/rimuovere contenuti da un report all'interno di un modello di revisione. Ecco un link per il API JMPClinicalStudyManager funzioni e un altro collegamento per il JMPClinicalReviewAPI funzioni di riferimento.
Quindi, cosa può fare per noi questa API JMPClinicalStudyMangerAPI? Ci fornisce due insiemi di funzioni: ottenere funzioni (quelle che ottengono informazioni sugli studi) e manipolare funzioni (quelle che aggiungono, rimuovono o aggiornano gli studi). Ecco una tabella di ciò che è possibile con la sintassi di base per chiamare quella funzione. I due punti (:) separano la chiamata API e la chiamata di funzione. Alcune delle funzioni hanno input e/o ritorni. Vedere i collegamenti sopra per i dettagli su cosa è previsto come input e ritorno.
API di gestione degli studi Study
|
Ottieni funzioni informative
|
Manipola le funzioni di studio
|
Ottieni l'elenco dei nomi degli studi:
JMPClinicalStudyManagerAPI:getStudyList
|
Aggiungi studio:
JMPClinicalStudyManagerAPI:addStudy
|
Ottieni il percorso della cartella SDTM:
JMPClinicalStudyManagerAPI:getSDTMFolder
|
Aggiorna i metadati dello studio:
JMPClinicalStudyManagerAPI:refreshStudies
|
Ottieni il percorso della cartella ADaM:
JMPClinicalStudyManagerAPI:getADaMFolder
|
Elimina studio:
JMPClinicalStudyManagerAPI:deleteStudies
|
Ottieni studio data è stato aggiunto:
JMPClinicalStudyManagerAPI:getInitialDate
|
Aggiorna studio con una nuova istantanea:
JMPClinicalStudyManagerAPI:updateSnapshot
|
Ottieni data di studio è stato aggiornato l'ultima volta:
JMPClinicalStudyManagerAPI:getLastUpdatedDate
|
Modifica cartelle dati studio:
JMPClinicalStudyManagerAPI:changeFolders
|
Ottieni lo stato di attivazione dell'istantanea:
JMPClinicalStudyManagerAPI:getEnableSnapshot
|
Pre-calcolare i dati del profilo paziente:
JMPClinicalStudyManagerAPI:precomputeProfileData
|
Ottieni il numero dell'istantanea:
JMPClinicalStudyManagerAPI:getSnapshotNumber
|
|
Ottieni l'elenco dei domini riconosciuti:
JMPClinicalStudyManagerAPI:getDomainList
|
|
Ottieni la dimensione del file su disco:
JMPClinicalStudyManagerAPI:getSizeOnDisk
|
|
Ottieni l'ID utente del sistema operativo Windows che ha creato/aggiunto lo studio:
JMPClinicalStudyManagerAPI:getCreatedBy
|
|
Ottieni l'ID utente del sistema operativo Windows che ha aggiornato l'ultimo studio:
JMPClinicalStudyManagerAPI:getLastUpdatedBy
|
|
Ora diamo un'occhiata alla seconda categoria, Funzioni di revisione. Questo ha anche una serie di funzioni per ottenere e manipolare, ma per Recensioni e Rapporti.
API di revisione
|
Ottieni funzioni informative
|
Manipola le funzioni di report/revisione
|
Ottieni un riferimento al Generatore di recensioni:
JMPClinicalReviewAPI:getReviewBuilder
|
Chiudi il generatore di recensioni:
JMPClinicalReviewAPI:closeReviewBuilder
|
Ottieni l'ID e il titolo del visualizzatore/costruttore di recensioni:
JMPClinicalReviewAPI:getReviewViewerIDsAndTitles
|
Apri il modello di revisione:
JMPClinicalReviewAPI:openReviewTemplate
|
Ottieni un riferimento al visualizzatore di recensioni:
JMPClinicalReviewAPI:getReviewViewer
|
Aggiungi un report a Review Builder:
JMPClinicalReviewAPI:addReport
|
Ottieni il sommario del visualizzatore/costruttore di recensioni:
JMPClinicalReviewAPI:getReviewTableOfContents
|
Rimuovi il generatore di recensioni dal modulo di rapporto per titolo:
JMPClinicalReviewAPI:removeReportByReportTitle
|
Ottieni un elenco di ID rapporto:
JMPClinicalReviewAPI:getReportIDList
|
Esegui report in Review Builder per titolo:
JMPClinicalReviewAPI:runReportByReportTitle
|
Ottieni un elenco di titoli dei rapporti:
JMPClinicalReviewAPI:getReportTitleList
|
Esegui tutti i rapporti nel Generatore di recensioni:
JMPClinicalReviewAPI:runAllReports
|
Ottieni un riferimento a un rapporto per ID:
JMPClinicalReviewAPI:getReportByID
|
Salva i contenuti di Review Builder come recensione:
JMPClinicalReviewAPI:saveReview
|
Ottieni un riferimento a un rapporto per titolo:
JMPClinicalReviewAPI:getReportByTitle
|
Apri una recensione nel Visualizzatore recensioni:
JMPClinicalReviewAPI:openReview
|
Ottieni i dettagli del rapporto per titolo:
JMPClinicalReviewAPI:getReportDetailsByTitle
|
Inserisci una sezione in un report:
JMPClinicalReviewAPI:insertSectionIntoReportByTitleAndSectionName
|
Ottieni un riferimento ai risultati del rapporto:
JMPClinicalReviewAPI:getReportResultsByTitle
|
Rimuovi sezione da un rapporto:
JMPClinicalReviewAPI:removeSectionFromReportByTitleAndSectionName
|
Ottieni un riferimento alla sezione Report:
JMPClinicalReviewAPI:getReportSectionByTitleAndSectionName
|
Aggiungi alla fine della sezione del rapporto:
JMPClinicalReviewAPI:appendDisplayObjectToReportSectionByTitleAndSectionName
|
Ottieni l'elenco delle tabelle di dati utilizzate nel report:
JMPClinicalReviewAPI:getDataTablesForSectionByTitleAndSectionName
|
Aggiungi all'inizio della sezione del rapporto:
JMPClinicalReviewAPI:prependDisplayObjectToReportSectionByTitleAndSectionName
|
Quindi ora abbiamo elencate le diverse funzioni e cosa possono fare. Ora è il momento di mostrare la sintassi di base del loro utilizzo. La forma base è questa:
JMPClinical<CATEGORY>API:<FUNCTION> ({argument(s)}, {namespace}, completeListenerFunction());</FUNCTION></CATEGORY>
Ho già introdotto la chiamata di base alle funzioni API relative alla gestione dello studio sopra quando ho fatto riferimento a JMPClinicalStudyManagerAPI. Quindi, se voglio aggiornare i metadati degli studi registrati, sarà simile a questo:
JMPClinicalStudyManager:refreshStudies ({studyList},{},{});
Lo analizzeremo di più e parleremo degli usi comuni nella prossima serie di post. Per ora, volevo introdurre ciò che è disponibile e come invocarlo generalmente all'interno di uno script JSL. Il prossimo post riguarderà un esempio dell'API di gestione dello studio, parlerà di più dello spazio dei nomi e delle parti completeListener della chiamata API e inizierà a avvolgerlo in JSL e utilizzare JSL al suo interno.
Al prossimo post, attenzione!